Skip to main content

Smarter with every session, automatically

Project description

Afterpaths

Smarter with every session, automatically.

Extract rules from what worked. Track what didn't. Find the best models for your stack.

You're running Claude Code, Cursor and Codex, but which model actually works best for your stack? What approaches lead to breakthroughs vs. expensive dead ends? How do you stop your agents from making the same mistakes?

Afterpaths gives you a single view across all your AI coding tools: compare what's working, capture discoveries as rules, and guide your agent team away from costly diversions.

Afterpaths Demo

What you're seeing:

  1. ap audit — Overview of your sessions, models used, and rule status
  2. ap show 5 --raw — Raw session transcript (the messy JSONL data, made readable)
  3. ap show 5 — LLM-generated summary extracting discoveries, dead ends, and decisions
  4. head .claude/rules/gotchas.md — Rules automatically extracted and ready for Claude's next session

The Problem

You're managing multiple agents - retaining critical context and learning from sessions is painful:

  • Repeated mistakes — Your agents hit the same gotchas. Three weeks later, same dead end, same wasted tokens.
  • No cross-tool visibility — Is Opus actually better than Sonnet for your codebase? Is Cursor outperforming Claude Code? You're guessing.
  • Rules are tedious — After a costly diversion, the last thing you want is to write a CLAUDE.md rule. So you don't. And the knowledge evaporates.
  • Sessions vanish — Session content is obscurely logged and hard to extract. Then it's often auto-deleted after 30 days. That breakthrough architecture decision? Context gone.

Afterpaths captures sessions across tools, surfaces what's working, and generates rules automatically—so your agents learn from every session, and you retain all your rich session context.

How It Works

Your Sessions                      Afterpaths
───────────────                    ────────────────────────────────────

Claude Code  ──► ap log      ──► Browse sessions across IDEs
Cursor           ap stats    ──► Analytics: tokens, activity, errors
Codex            ap summarize──► Session summaries (what happened)
                 ap rules    ──► Rule files (what to remember)
                 ap search   ──► Find past discussions & discoveries
                                    │
                                    ▼
                           .claude/rules/ · .cursor/rules/
                                    │
                                    ▼
                           Your next session is smarter

Quick Start

pip install afterpaths

# Navigate to your project (rules are project-specific)
cd ~/code/your-project

# Run audit to see what you have
ap audit

The audit shows your sessions across all tools, model performance, and whether you have rules set up. No API key needed.

From there, the recommended flow:

# 1. Browse sessions and find significant work
ap log

# 2. Summarize important sessions (requires API key)
export ANTHROPIC_API_KEY="sk-ant-..."
ap summarize 1

# 3. Extract rules from summaries → .claude/rules/
ap rules

# 4. Search across past sessions
ap search "database schema"
ap search "auth" --deep    # also search raw transcripts

# 5. Track ongoing performance
ap stats
ap stats --daily

Tip: ap is the short alias for afterpaths. Both work identically.

All commands support --json for structured output (e.g., ap log --json, ap show 1 --json, ap search "query" --json).

See docs/commands.md for the full command reference and recipes.

From Session to Rules

Real example: A bug causing 76 missing sessions became a rule that prevents the same mistake.

While building afterpaths, sessions for a project weren't showing up. The path (let's call it) /Users/Code/foo_bar was being decoded as /Users/Code/foo/bar. After investigation, we discovered Claude Code uses lossy path encoding—both / and _ become -.

The summary captured the discovery:

## Discoveries

- **Claude Code's path encoding is lossy**: Project paths in `~/.claude/projects/`
  are encoded by replacing `/` with `-`, but underscores are ALSO converted to
  hyphens. Three different paths encode identically:
  - `/Users/Code/foo_bar``-Users-Code-foo-bar`
  - `/Users/Code/foo-bar``-Users-Code-foo-bar`
  - `/Users/Code/foo/bar``-Users-Code-foo-bar`

ap rules extracted it into .claude/rules/gotchas.md:

- **Claude Code lossy path encoding**: Claude Code encodes project paths by
  replacing both `/` and `_` with `-`, making them indistinguishable when
  decoding. When decoding, try underscore variants alongside hyphen variants
  at each greedy step, preferring longer segments (single directories) over
  nested paths.
  _Source: 91b1ffbc_

Next time Claude works on path decoding in this codebase, it already knows about the lossy encoding—no need to rediscover it.

Why Afterpaths

Without With Afterpaths
Discover gotcha, forget to document it ap summarize captures it with full context
Hit the same issue 3 weeks later Rule in .claude/rules/ prevents it
No idea what's working ap stats shows tokens, sessions, error rates
Sessions scattered across IDEs ap log unified view across Claude + Cursor
Learnings siloed per tool Rules sync to .claude/rules/ and .cursor/rules/

What Gets Extracted

Category What it captures Example
Dead Ends Approaches that failed "Don't use X because Y"
Decisions Architectural choices "We chose Redis over Postgres because..."
Gotchas Non-obvious warnings "Watch out for X when doing Y"
Patterns Techniques that worked "For X, use pattern Y"

Each rule includes source session references so you can trace back to the original context.

Supported Tools

Tool Status Location
Claude Code ✅ Ready ~/.claude/projects/*.jsonl
Cursor ✅ Ready ~/Library/Application Support/Cursor/User/workspaceStorage/
Codex CLI ✅ Ready ~/.codex/

MCP Server

Afterpaths includes an MCP server that puts session history directly into your agent's tool list. Instead of relying on agents to discover the CLI, the MCP server makes session search, summaries, and rules available as native tools.

# Install with MCP support
pip install afterpaths[mcp]

# Add to Claude Code
claude mcp add afterpaths -- afterpaths-mcp

# Or run directly
python -m afterpaths.mcp_server

Tools exposed:

Tool Description
afterpaths_list_sessions List recent sessions for context recovery
afterpaths_show_session Read session summaries and transcripts
afterpaths_summarize Generate summaries for sessions
afterpaths_search Search across past sessions
afterpaths_get_rules Get extracted rules (dead ends, decisions, etc.)

Once configured, agents can ask "have we seen this before?" or "what were the dead ends?" and get answers from your session history.

Privacy

  • All local — Summaries and rules stay in your project
  • Your API key — Uses your Anthropic/OpenAI key
  • Read-only — Never modifies your source code
  • Gitignored.afterpaths/ excluded by default

Storage

your-project/
├── .afterpaths/           # Summaries (gitignored)
│   ├── summaries/
│   └── meta.json
├── .claude/
│   └── rules/             # Generated rules (commit these!)
│       ├── dead-ends.md
│       ├── gotchas.md
│       └── patterns.md
└── src/

Roadmap

  • Claude Code session parsing
  • Cursor session support
  • Session analytics (tokens, errors, daily trends)
  • LLM summarization
  • Automatic rule extraction
  • Multi-target export (Claude, Cursor)
  • Codex CLI support
  • Cross-session search (ap search)
  • JSON output (--json flag)
  • MCP server for agent integration
  • Semantic search across sessions
  • Benchmarking and productivity insights

License

MIT


Manage your AI coding agents. Learn what works. Stop repeating mistakes.

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

afterpaths-0.2.2.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

afterpaths-0.2.2-py3-none-any.whl (77.4 kB view details)

Uploaded Python 3

File details

Details for the file afterpaths-0.2.2.tar.gz.

File metadata

  • Download URL: afterpaths-0.2.2.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for afterpaths-0.2.2.tar.gz
Algorithm Hash digest
SHA256 60c6bfea09a7f1d0711405ccc9c089a43f6ad95580fe86f1973b99385efed37a
MD5 f9ce2a7efd9f68b3b8365aeffcd24bee
BLAKE2b-256 4b44fdc35f8645deb6f8b4d94e38fd9a5513c354069a5613fe86f4371bc1d22d

See more details on using hashes here.

File details

Details for the file afterpaths-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: afterpaths-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 77.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for afterpaths-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bc6b9a96524cd4085b6c2809687e725f1b34c9f2fe632c2190d8e358027d706b
MD5 2a3d0d562427d221d216fc6e06429c43
BLAKE2b-256 ece96ef498bb3b9376ee0efd2404b3617661074a108bdb6b61694091b685c93e

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