Decision log daemon for agentic workflows
Capture agent decisions and reasoning - the missing layer between git history and LLM traces. Local-first, framework-agnostic, built for developers.
When AI agents work on your codebase, critical context disappears. Git tells you what changed. LLM traces tell you what was said. Neither tells you why a decision was made, what alternatives were considered, or what failed before the final approach.
Records what changed, but not why this approach was chosen over alternatives.
Capture the conversation, but important decisions are buried in thousands of tokens.
Structured decision records with context, reasoning, alternatives, and file associations.
agentlog runs as a lightweight daemon alongside your development tools. Agents (or you) write structured decision entries. Everything is stored locally in append-only JSONL files with a SQLite index for fast queries.
# Start the daemon agentlog start # Log a decision agentlog write --type decision --title "Use SQLite for the index" \ --body "JSONL for durability, SQLite for queries. Index is rebuildable." \ --tags "architecture,storage" # Search your decisions agentlog query "SQLite" # See which decisions affected a file agentlog blame src/index.ts
Everything stays on your machine. No cloud services, no accounts, no network dependency. Your decisions live alongside your code.
Append-only JSONL logs are human-readable, git-committable, and greppable. SQLite index enables fast queries and full-text search.
Works with any AI agent, any language, any workflow. Not tied to a specific LLM provider or development tool.
Programmatic access from Python. Write decisions, query the log, and integrate with your existing tooling.
First-class TypeScript support. Type-safe client for writing and querying agent decisions.
Automatic decision logging when working with Claude Code. Hooks into agent lifecycle with zero configuration.
go install github.com/byronxlg/agentlog@latest
agentlog start
agentlog write --type decision --title "Chose Postgres over MySQL" \ --body "Better JSON support, needed for our schema-flexible data model."
See the Getting Started guide for the full walkthrough, or browse the CLI Reference for all available commands.