HILT: Human-IA Log Trace - Privacy-first logging format for AI interactions
Project description
HILT – Human–AI Log Tracing
HILT is a privacy-first, open-source format for logging human–AI interactions. Drop in one line at startup and every LLM call is captured with prompts, completions, metrics, and error context—no refactors, no custom wrappers.
What’s inside today
- One-line auto-instrumentation for the official OpenAI Python SDK (
client.chat.completions.create) - Deterministic conversation threading with prompt/completion links and reply metadata
- Rich telemetry: latency, token usage, cost estimates, HTTP-style status codes, and error surfaces
- Storage backends you control: append-only JSONL files or real-time Google Sheets dashboards
- Thread-safe context management so you can override sessions per request, per worker, or per tenant
- Manual event logging via
Session.append()for tool calls, human feedback, or guardrail results
Installation
pip install hilt
Need Google Sheets streaming? Install the Sheets extra:
pip install "hilt[sheets]"
Quick start
from hilt import instrument, uninstrument
from openai import OpenAI
# Enable automatic logging (writes to logs/chat.jsonl by default)
instrument(backend="local", filepath="logs/chat.jsonl")
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Give me three onboarding tips"}],
)
print(response.choices[0].message.content)
# Stop logging when your app shuts down
uninstrument()
After the single instrument() call:
- Prompts and completions are recorded as separate events
- Latency, tokens, cost, and status codes are populated automatically
- Conversation IDs remain stable so you can trace every exchange end to end
Storage options
Local JSONL (default)
instrument(backend="local", filepath="logs/app.jsonl")
- Privacy-first: data never leaves your environment
- Plays nicely with analytics tooling (Python, Pandas, Spark, etc.)
Google Sheets (real time)
See Google Sheets setup guide for credential and sheet ID steps.
instrument(
backend="sheets",
sheet_id="1abc...",
credentials_path="credentials.json",
worksheet_name="LLM Logs",
columns=["timestamp", "message", "cost_usd", "status_code"],
)
- Great for support, QA, or cost monitoring teams
- Columns control both ordering and visibility
- Works with
credentials_pathor in-memorycredentials_json
Advanced usage
Provider selection
instrument(
backend="local",
filepath="logs/app.jsonl",
providers=["openai"], # Anthropic / Gemini planned
)
Passing an empty list opens the session without patching any providers—useful for manual logging scenarios.
Troubleshooting highlights
- Nothing recorded? Ensure
instrument()runs before importing the OpenAI client. - Async apps? Use the same call; the instrumentation is thread-safe and works with
AsyncOpenAI. - Large logs? Rotate files daily (
logs/app-YYYY-MM-DD.jsonl) and prune with a cron job. - Sheets failing? Double-check the service account has editor access and that
hilt[sheets]is installed.
See docs/ for deeper guides on privacy, advanced contexts, and FAQ.
Development
Contributions are welcome! Start with CONTRIBUTING.md. The test suite lives in tests/, and linting/type checking is configured via Ruff, Black, and MyPy.
TODO
- Add auto-instrumentation for Anthropic Claude
- Add auto-instrumentation for Google Gemini
- Add auto-instrumentation for LangGraph
License
Released under the Apache License 2.0.
Installation
pip install hilt-python
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hilt_python-0.2.7.tar.gz.
File metadata
- Download URL: hilt_python-0.2.7.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.11 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d516ac63b3fd99057cc3340e7ac1a7c06b2205b6d6733dbc60eb3e99cbfba29a
|
|
| MD5 |
0ecb4d3da2d5335ab2da0cb8237788ba
|
|
| BLAKE2b-256 |
127cc122f6d3314f1764cd2e61416b73344449680694a091565faff25e1d74b0
|
File details
Details for the file hilt_python-0.2.7-py3-none-any.whl.
File metadata
- Download URL: hilt_python-0.2.7-py3-none-any.whl
- Upload date:
- Size: 30.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.11 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3a2c184497f55ea09f407339ad8b10b568833f8f07fa9d20232aa050542f241
|
|
| MD5 |
27edb8cb3cf7c385e036569ffffbc75a
|
|
| BLAKE2b-256 |
d136d312ad22a2f5dc2597b650129e2373bac8fdd5ed39d64d5118b3c56e8ca2
|