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-io

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.5.0.tar.gz (18.2 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.5.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agentlens_io-0.5.0.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentlens_io-0.5.0.tar.gz
Algorithm Hash digest
SHA256 7ca4ae6c16626fb5dac0229918eb10e47b8dee8977e3b8ae50fa864516004038
MD5 40c8f7ec5b8765122bf726c548287e8c
BLAKE2b-256 e027d95f2214853ef901ed62a7bc824d0d6987c3c75fb0dfa5cac86615f52f60

See more details on using hashes here.

File details

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

File metadata

  • Download URL: agentlens_io-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentlens_io-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 606658662b1a2b4b86d435813547507e040b10d76e38728416b6ec88b1b7feec
MD5 4d07008554506a8b585d1d9c6cf70ba3
BLAKE2b-256 480bacfcccbece613cf111226444d69d2a2aa373c79a69ff64cd0a6819d3ea72

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