Skip to main content

Audit logging for Claude AI agents — transparent, tamper-evident, OSS

Project description

agentlens

Audit logging for Claude AI agents. Transparent, append-only, OSS.

Why

Anthropic logs API calls for their own safety monitoring — but that log is not yours. When your Claude-powered agent takes an action, you need your own tamper-evident record: for compliance, incident response, and accountability.

agentlens is a drop-in wrapper around the Anthropic SDK that captures every tool_use and tool_result event — without modifying requests or responses.

Design principles

  • Read-only interception — requests and responses are never altered
  • Append-only writes — log entries cannot be edited after creation
  • No AI in the logger — capture logic is deterministic code, not an LLM
  • Your data stays local — FileWriter (default) writes to your own machine; no data leaves your environment

Install

pip install agentlens

Usage

from agentlens import AuditedAnthropic

# Drop-in replacement for anthropic.Anthropic()
client = AuditedAnthropic(log_path="./audit.jsonl")

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    tools=[...],
    messages=[{"role": "user", "content": "..."}],
)
# Every tool_use and tool_result is now in audit.jsonl

Log format (JSONL)

{"event_type": "tool_use", "tool_use_id": "toolu_01xxx", "tool_name": "bash", "tool_input": {"command": "ls -la"}, "model": "claude-opus-4-6", "timestamp": "2026-04-05T10:00:00+00:00", "session_id": "..."}
{"event_type": "tool_result", "tool_use_id": "toolu_01xxx", "result_content": "file1.txt\nfile2.txt", "is_error": false, "timestamp": "2026-04-05T10:00:01+00:00", "session_id": "..."}

Custom writer

from agentlens.writers import BaseWriter

class MyWriter(BaseWriter):
    def write(self, event) -> None:
        # send to your own DB, S3, SIEM, etc.
        my_db.insert(event.to_json())

client = AuditedAnthropic(writer=MyWriter())

Run tests

pip install -e ".[dev]"
pytest tests/

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentlens_io-0.2.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentlens_io-0.2.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file agentlens_io-0.2.0.tar.gz.

File metadata

  • Download URL: agentlens_io-0.2.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for agentlens_io-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cca06f2c3a33d0cf577068bc3d2f0cfa4aa269281bb30f8931b9a65fff038a58
MD5 1ae144d6cfe6c8967d3c00a051bd3b31
BLAKE2b-256 7f8c38218724eb9186750d6ddc90aa49f75d5c5a08d253903c20bc233b85a0ab

See more details on using hashes here.

File details

Details for the file agentlens_io-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: agentlens_io-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for agentlens_io-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1c641299e7b6496fdddc58811f9bc0b9074aa6c6ed91c11cffeb427dd5bfdc2
MD5 ebe3c2e044c175d0432ba05de46422fc
BLAKE2b-256 9ab447a85c99edcca0a12c730a5bb96a1b3ce2c7b6f97e5cb0a72665a999c460

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page