Stop re-explaining your project to the AI.

Codetrail turns Claude Code into a persistent project partner: every file edit logged automatically, every use case & test case tracked, stale-context warnings on resume. No more confident-wrong narratives.

Built on tfl5. Free, MIT-licensed, local-first.

MIT
open source license
54
events in demo devlog
local-first
no telemetry
0
bytes uploaded for viewer
codetrail.dipgle.com/viewer.html?demo=1
Events Use cases Test cases Test runs
IDTSKindRefContent
542026-06-02 14:21artifactfile:crates/server/src/main.rsWrite: bind /healthz JSON envelope
532026-06-02 14:18decisionUse rmcp 0.16 (bundled rusqlite, single binary)
522026-06-02 14:15artifactfile:Cargo.tomlEdit: add chrono + schemars deps
512026-06-02 13:58test_runTC-007RED — getContextBrief returns null on empty DB
502026-06-02 13:52messageactor:user"split scan_health into queryable signals"
Open the live viewer →

Auto-artifact log

Every Edit/Write becomes an immutable event in logs/devlog.sqlite. Zero manual log_event calls. Two-hook design ships in 5 minutes.

UC / TC tracking, TDD-aligned

Use cases and test cases live in the same SQLite next to every event. RED → GREEN runs are recorded, not implied. Session resume reads from data, not vibes.

Stale-resume warning

SessionStart hook compares devlog last-event with file mtime. If code moved without logging, the warning lands directly in the prompt — impossible to miss.

Multi-project memory

5, 20, 50 projects in one workspace? Codetrail walks up from any file to find the right devlog. One brain across all your codebases.

Browser-native viewer

Drag any devlog.sqlite into the viewer — events, UCs, TCs, test runs render instantly. Pure WASM, your data never leaves the browser.

Local-first, no cloud

SQLite stays on your disk, alongside the code. There is no cloud component to opt in to. Privacy by default, not by preference toggle.

Why Codetrail

Honest table. We track what no other AI-coding tool tracks structurally.

Codetrail Claude Code Aider Cursor
Structured project devlog (events / decisions) git only
UC / TC + test_runs tracked separately
Multi-project memory across N codebases partial (chat memory)per-repoper IDE session
Auto-log every artifact without code calls discipline-basedinherent
Browser-native viewer for any team member terminal log
Stale-resume warning at session start
Local-first; no cloud component hybridcloud-only
Setup time ~30s (np my-app) ~5min ~1min ~10min IDE config

Spotted something off? Tell us — we update this table when we're wrong.

How it works

  1. Install

    One bash helper: np my-app scaffolds CLAUDE.md, docs/, memory/, logs/devlog.sqlite, MCP server. Or adopt an existing project in place.

  2. Work normally

    Open Claude Code. Auto-hooks log every artifact. The MCP server tracks UCs/TCs/test runs as you build. Nothing extra to remember.

  3. Resume any time

    Days, weeks, multiple agents later — Codetrail surfaces the right context. The narrative comes from data, not stale notes.

Install in 30 seconds

Two helpers: np for new projects, adopt for existing ones. Works on macOS, Linux, Windows (native or WSL2). Requires Node 20+ and Claude Code.

1

Add the helpers to your shell

curl -fsSL https://codetrail.dipgle.com/install.txt | bash
source ~/.zshrc
2

Start a new project

np my-app          # scaffolds + opens Claude Code

# or adopt an existing project:
cd /path/to/repo
adopt
3

That's it

PostToolUse and SessionStart hooks register globally. Every Edit/Write auto-logs. Open Claude Code in any project — Codetrail runs in the background.

Reviewing first? View source on GitHub · See the hook code

Honest answers to the questions you'd actually ask

How is this different from Claude Code's built-in auto-memory?

Auto-memory is chat-style — it summarizes conversations into prose. Codetrail is structural: every file edit becomes an artifact event with path, timestamp, and tool. Every decision is a typed decision row. Every test run records pass/fail with notes. You can query, filter, and audit. The two are complementary; we plug into hooks while auto-memory runs at the model layer.

Does my code leave my machine?

No. Hooks write to logs/devlog.sqlite on your disk. The web viewer parses SQLite in your browser via WASM — zero upload. Codetrail has no cloud component; everything runs locally. See the privacy policy.

What if Claude Code changes its hook API?

The hooks live in ~/.claude/settings.json and shell out to plain bash scripts that only depend on sqlite3 and Python 3. If the schema or matcher format changes, we ship an update — the migration is a one-line settings edit. The devlog format is independent and we'll always provide a converter.

Is the code open source?

Yes — everything is MIT. Hooks, landing, project template, and both MCP server implementations (Node + Rust). See github.com/dipgle/codetrail.

I already use Cursor / Aider — can I still use Codetrail?

Codetrail's hooks are Claude Code-specific (they hook into Claude Code's PostToolUse / SessionStart events). The browser viewer is editor-agnostic — drop any compatible SQLite there. Aider and Cursor integrations aren't on the roadmap but the schema is documented; community PRs welcome.

Open source on GitHub

Landing, hooks, project template, SDK — MIT-licensed. Drop a star if Codetrail saves you time; file an issue if it doesn't.

Star on GitHub

Stay in the loop

Codetrail is free and fully MIT-licensed today — clone the repo or run install.txt. Drop your email if you'd like a short note when a major feature ships. No spam, opt-out anytime.

Occasional product updates. One-click unsubscribe in every email.