chronicle-workflow-skills
NewComplete Chronicle workflow skills including session documentation, context retrieval, and development tracking
Overview
<p align="center"> <img src="public/chronicle_paragraph.png" alt="Chronicle - Local-first development session recorder with AI-powered search" width="800"> </p>
Give your AI assistants a memory. Track every decision, search past conversations, and never lose context across sessions.
๐ Project Sunset Notice
November 2025: Chronicle has been officially sunset.
After a successful development journey, we've decided to end active development of Chronicle. The project achieved all its core goals and demonstrated that AI session recording provides immense value - with a proven 2,700x ROI from real-world usage data.
Why the Sunset?
The primary motivation for ending Chronicle's development is the discovery of the episodic-memory skill in the superpowers repository, which provides a more comprehensive and integrated solution for conversation memory across AI platforms. Rather than maintaining two overlapping solutions, we recommend users transition to the episodic-memory system for future needs.
What This Means
- โขโ The codebase remains available for reference, learning, and adaptation
- โขโ All features are stable and functional - you can continue using Chronicle if it meets your needs
- โขโ Comprehensive documentation preserves all architectural decisions and implementation patterns
- โขโ No new features or bug fixes will be implemented
- โขโ No active maintenance or support will be provided
Recommended Alternative
For new users or those seeking similar functionality, we highly recommend exploring:
- โขepisodic-memory skill (superpowers repository) - Cross-platform conversation memory with advanced search capabilities
- โขBuilt-in AI tool memory - Many AI assistants are adding native session memory features
Legacy
Chronicle pioneered the concept of AI session recording and demonstrated:
- โขAI-powered session summarization with chunked processing
- โขMCP server integration for AI queryable databases
- โขDatabase-tracked project management with milestone linking
- โขCross-platform session organization and search
- โขThe value of persistent AI memory in development workflows
Thank you to everyone who used, contributed to, and supported Chronicle! ๐ฏ
![Tests]() ![Python]() ![License]() ![MCP]() ![Phase]() ![Status]()
๐ก Value Proposition
The Problem: You spend hours discussing architecture decisions with Claude Code on Monday. On Friday, you switch to a new project and Claude has zero memory of what you decided. You waste time re-explaining context, rediscovering solutions, and repeating conversations across different AI tools.
Chronicle solves this by creating a searchable, AI-powered memory system for all your development work:
- โข๐ง Persistent AI Memory - Your AI assistants can query Chronicle to remember what you discussed last week, last month, or last year
- โข๐ Cross-Session Intelligence - "How did I implement authentication in that other project?" โ Instant answer from past sessions
- โข๐ Development Insights - See patterns in your workflow, track time across projects, generate weekly summaries
- โข๐ค Multi-AI Coordination - Claude, Gemini, and Qwen can all access the same knowledge base
- โข๐ 100% Local - Everything stays on your machine. No cloud sync, no data sharing, full privacy.
Perfect for:
- โขSolo Developers - Never forget why you made that architectural decision 3 months ago
- โขConsultants & Contractors - Track billable hours, generate client reports, document decisions
- โขMulti-Project Engineers - "What did I do on ProjectX last week?" โ Instant answer
- โขAI Power Users - Get the most out of Claude, Gemini, Cursor, etc. with persistent context
- โขTeams - Build institutional knowledge from AI-assisted development
- โขOpen Source Maintainers - Document discussions and decisions for contributors
๐ฌ Quick Demo
# Day 1: Work on authentication
$ chronicle start claude
> You discuss OAuth2 implementation with Claude for 2 hours
> Make several commits
$ exit
# Day 30: Different project, need to remember
$ chronicle start claude
You: "How did I implement OAuth2 in that other project?"
Claude: [Uses Chronicle MCP server]
โ search_sessions("OAuth2")
โ get_session_summary(session_id=5)
Claude: "In session 5 from last month, you implemented OAuth2 with
the 'authorization_code' flow. Key decisions:
- Used Auth0 for identity provider
- Stored tokens in httpOnly cookies
- Implemented refresh token rotation
Files: src/auth/oauth.ts, src/middleware/auth.ts"
You: "Perfect! Do the same thing for this project"
# No time wasted re-explaining context! ๐ฏ๐ฏ The Problem (Detailed)
Modern developers use multiple AI coding assistants, but face critical challenges:
Memory Loss
- โขโ Each AI session starts from scratch with zero context
- โขโ "What did we decide about authentication 2 weeks ago?" ๐คท
- โขโ Repeat the same explanations across different AI tools
- โขโ Lost context when switching between Claude Code, Gemini CLI, Cursor
Tracking Difficulty
- โขโ No record of decisions made during AI-assisted development
- โขโ Hard to remember which AI tool helped with which feature
- โขโ Can't search through past AI conversations
- โขโ Lost connection between commits and the AI sessions that created them
Multi-Project Chaos
- โขโ Work on 5 different projects? Good luck remembering what you did where
- โขโ Client asks "what did we build last sprint?" โ scramble through git logs
- โขโ No easy way to generate weekly summaries or progress reports
โจ The Solution
Chronicle is a local-first development memory system that gives AI assistants persistent context:
Core Features:
- โข๐ฏ Full Session Recording - Complete transcripts of Claude Code, Gemini CLI, Qwen Code sessions
- โข๐ Commit Linking - Automatically connects git commits to the AI sessions that created them
- โข๐ค AI-Powered Summaries - Intelligent summaries with key decisions, blockers, and file changes
- โข๐ Instant Search - Find past conversations, decisions, and implementations in seconds
- โข๐ Multi-Project Tracking - Automatically organizes work by repository
- โข๐ MCP Server - AI assistants can query Chronicle database directly via Model Context Protocol
- โข๐ Obsidian Integration - Optional export to markdown vault for knowledge graph visualization
- โข๐ 100% Local - Everything stored in SQLite on your machine (no cloud required)
๐ Quick Start
Installation
# Clone and install with MCP support
git clone https://github.com/ChandlerHardy/chronicle
cd chronicle
python3 -m pip install -e ".[mcp]"
# Initialize Chronicle
chronicle init
# Interactive setup (API configuration + optional Claude Code hooks)
chronicle setup
# Add a repository to track
chronicle add-repo /path/to/your/projectFor environments where you can't install Rust dependencies (e.g., restricted FreeBSD systems), you can install Chronicle without MCP support:
# Clone and install without MCP dependencies
git clone https://github.com/ChandlerHardy/chronicle
cd chronicle
python3 -m pip install -e .
# All CLI commands work normally
chronicle init
chronicle setup # Unified interactive setup (API + optional hooks)
chronicle start claude
chronicle sessions
chronicle search "your query"Note: Without MCP support, AI assistants cannot query Chronicle directly. All features work via CLI.
On Ubuntu/Debian systems, you may encounter these issues:
Issue 1: "externally-managed-environment" error
# Solution: Use --break-system-packages or create virtual environment
python3 -m pip install -e ".[mcp]" --break-system-packages
# Or create virtual environment (recommended)
python3 -m venv chronicle-venv
source chronicle-venv/bin/activate
python3 -m pip install -e ".[mcp]"Issue 2: "Command 'chronicle' not found" after installation
This happens because pip installs scripts in ~/.local/bin which isn't in PATH:
# Add local bin to PATH (temporary)
export PATH="$HOME/.local/bin:$PATH"
# Add permanently to shell profile
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Verify correct chronicle is installed
which chronicle # Should show /home/user/.local/bin/chronicleIssue 3: Installing wrong "chronicle" package
Ubuntu has an unrelated package called chronicle (a blog generator). If you accidentally install it:
# Remove the wrong package
sudo apt remove chronicle
# Then use the PATH fix above to access the correct oneBasic Usage
# View today's activity (commits + AI interactions)
chronicle show today
# Start an interactive AI session (auto-recorded)
chronicle start claude # Claude Code
chronicle start gemini # Gemini CLI
chronicle start qwen # Qwen Code CLI
# View all sessions
chronicle sessions
chronicle sessions --limit 20 # Show more sessions
chronicle sessions --repo /path/to/project # Filter by repository
# Search sessions with FTS5 full-text search (supports boolean operators!)
chronicle search-sessions "gemini model" # Any word (broader results, implicit OR)
chronicle search-sessions "gemini AND model" # Both words required (explicit AND)
chronicle search-sessions "gemini OR claude" --all # Either word (explicit OR)
chronicle search-sessions "testing NOT deprecated" # Exclude deprecated
chronicle search-sessions '"data corruption"' # Exact phrase only
# View a session with AI-generated summary
chronicle session 5
# AI-powered summaries of your work
chronicle summarize today # Today's accomplishments
chronicle summarize week # Weekly digest
chronicle summarize today --repo /path/repo # Per-project summaries
# See combined timeline
chronicle timeline today
# Search history
chronicle search "authentication"Updating Chronicle
Chronicle includes a built-in update command that handles everything automatically:
# Check for and install updates
chronicle update
# Check what's available without installing
chronicle update --check-onlyWhat it does:
- โขโ Checks for new commits from GitHub
- โขโ Shows what's changed (commit log)
- โขโ Pulls latest code
- โขโ Auto-detects if dependencies changed
- โขโ Reinstalls with correct mode (MCP or minimal)
- โขโ Auto-migrates database if schema changed
Manual update:
cd /path/to/chronicle
git pull origin main
pip install -e ".[mcp]" # Or: pip install -e .๐ Core Concepts
Chronicle vs CLAUDE.md
CLAUDE.md is static project documentation:
- โขโ Project structure, conventions, tech stack
- โขโ Written manually, read by AI at session start
- โขโ Describes "how this project works"
Chronicle is dynamic session recording:
- โขโ Automatic tracking of what you actually did
- โขโ Cross-AI session history (Claude, Gemini, Qwen)
- โขโ Searchable timeline of decisions and changes
- โขโ Describes "what happened and why"
They're complementary! CLAUDE.md tells the AI about your project, Chronicle tells YOU what you did.
๐ฎ Features
โ Phase 1: Git Commit Tracking (COMPLETE)
Track git commits and link them to development activity:
chronicle add-repo /path/to/project # Import commits
chronicle show today # View today's commits
chronicle search "bug fix" # Search commit messages
chronicle stats /path/to/project # Repository statisticsFeatures:
- โขAuto-scan git repositories for commits
- โขStore commit metadata (SHA, message, files, author, timestamp)
- โขPrevent duplicates
- โขSearch by message content
- โขFilter by date range
โ Phase 2: AI Interaction Tracking (COMPLETE)
Record full AI coding sessions with transcript capture:
chronicle start claude # Start Claude Code session
chronicle start gemini # Start Gemini CLI session
chronicle start qwen # Start Qwen Code CLI session
# Work normally in the AI tool...
# Full transcript is recorded automatically
exit # Session saved!
chronicle sessions # List all sessions
chronicle session 5 # View session detailsFeatures:
- โขFull terminal transcript capture using Unix
scriptcommand - โขRecords all input/output from AI conversations
- โขAutomatic timestamp tracking
- โขSession duration calculation
- โขAutomatic summarization (generated when you view the session)
For quick questions to Gemini or Qwen:
chronicle ask "How do I optimize this query?" --tool gemini
chronicle ask "Review this code for bugs" --tool qwen
chronicle ask "Test question" --tool gemini --log-onlychronicle ai today # View today's AI interactions
chronicle ai yesterday # Yesterday's interactions
chronicle ai week # Last 7 days
chronicle ai-stats # Usage statistics with charts
chronicle ai-stats --days 30 # Last 30 days
chronicle timeline today # Combined commits + AI interactionsFeatures:
- โขAI interaction logging (prompt, response, duration)
- โขAuto-link interactions to commits (30-minute window)
- โขMulti-tool support (Claude Code, Gemini CLI, Qwen Code)
- โขBeautiful terminal output with tool-specific emojis (๐ฏ Claude, โจ Gemini, ๐ฎ Qwen)
- โขUsage statistics with visual charts
๐ง Configuration System (COMPLETE)
Manage Chronicle settings with YAML config:
chronicle config --list # View all settings
chronicle config ai.gemini_api_key # View API key (masked)
chronicle config ai.gemini_api_key YOUR_KEY # Set API key
chronicle config ai.default_model # View default modelConfig file: ~/.ai-session/config.yaml
Available settings:
- โข
ai.gemini_api_key- Gemini API key for summarization - โข
ai.default_model- Default Gemini model (gemini-2.0-flash-exp) - โข
ai.summarization_provider- Summarization provider (gemini or ollama) - โข
ai.ollama_model- Ollama model name (qwen2.5:32b) - โข
ai.ollama_host- Ollama host URL (http://localhost:11434) - โข
ai.auto_summarize_sessions- Auto-summarize when viewing session (disabled by default) - โข
retention.raw_data_days- How long to keep raw transcripts (7 days) - โข
retention.summaries_days- How long to keep summaries (90 days)
Security:
- โขAPI keys masked in display
- โขEnvironment variable support (
GEMINI_API_KEY) - โขConfig file excluded from git (
.gitignore)
โ Claude Code Hooks & Workflow Automation (COMPLETE)
Automatically enforce Chronicle best practices with Claude Code hooks:
# Set up hooks for workflow automation (included in unified setup)
chronicle setup --hooks-only
# Hooks will now automatically:
# - Remind you to search Chronicle before implementing
# - Recommend relevant skills for your task
# - Check if you're writing tests first (TDD)
# - Verify session tracking status
# - Check for superpowers skills availabilityWhat gets installed:
- โขHook scripts in
~/.claude/hooks/- UserPromptSubmit, Stop, PostToolUse - โขSettings configuration in
~/.claude/settings.json- Registers hooks with Claude Code - โขUniversal CLAUDE.md in
~/.claude/CLAUDE.md- Development best practices
Hook Behaviors:
- โขUserPromptSubmit Hook: Injects "Search Chronicle First" reminders and skill recommendations
- โขStop Hook: Post-response quality checks (session tracking, TDD compliance)
- โขPostToolUse Hook: Tracks edited files for future build checking
- โขSuperpowers Integration: Checks for TDD skill availability and provides installation guidance
Universal Directives: The ~/.claude/CLAUDE.md contains comprehensive development guidelines:
- โขโ Search First Mandate - 2,700x ROI proven from real sessions
- โขโ Skills Integration - Auto-recommend Chronicle skills
- โขโ TDD Enforcement - Write tests before implementation (with superpowers TDD skill)
- โขโ MCP over CLI - Use structured MCP tools instead of parsing CLI output
- โขโ Roadmap Checking - Avoid duplicate work
Superpowers Skills Integration:
- โข๐งช TDD Skill Auto-Activation (Priority 95) - Comprehensive test-driven development enforcement
- โข๐ Installation Checking - Automatically verifies superpowers marketplace and skills availability
- โข๐ง Guided Setup - Provides clear installation instructions when skills are missing
Benefits:
- โข๐ฏ 50% token reduction vs always-active agents
- โข๐ง Automatic enforcement - No need to remember best practices
- โข๐ Quality checks - Catches common mistakes before they happen
- โข๐ Cross-platform - Works on macOS, Linux, and FreeBSD
Usage: After running chronicle setup (or chronicle setup --hooks-only), restart Claude Code. The hooks will automatically activate based on your prompts and provide contextual reminders.
For FreeBSD Systems: The setup command will check for superpowers skills availability. If missing:
- Run
/plugin install superpowers-marketplacein Claude Code - Run
/plugin install superpowers@superpowers-marketplace - Restart Claude Code
- TDD skill will now auto-activate when implementing features
โ Phase 3: AI Summarization (COMPLETE)
AI-powered summarization with multiple provider options:
Option 1: Gemini (Cloud, 1M token context)
# Configure Gemini API key
chronicle config ai.gemini_api_key YOUR_KEY
chronicle config ai.summarization_provider gemini
chronicle config ai.default_model gemini-2.0-flash-exp
# Test connection
chronicle test-geminiOption 2: Ollama (Local, unlimited)
# Install and run Ollama first: https://ollama.ai
ollama pull qwen2.5:32b
# Configure Chronicle
chronicle config ai.summarization_provider ollama
chronicle config ai.ollama_model qwen2.5:32b
chronicle config ai.ollama_host http://localhost:11434chronicle sessions # List all sessions
chronicle session 5 # View session #5
# First time: Automatically generates AI summary
# Subsequent views: Shows cached summary (instant!)For large sessions that exceed Gemini API rate limits, use Qwen CLI or Gemini CLI directly:
chronicle summarize-session 8 # Use Qwen CLI (default, 2000 req/day)
chronicle summarize-session 8 --provider gemini # Use Gemini CLIThis bypasses API token-per-minute limits by calling the CLI tools directly.
chronicle summarize today # AI summary of today's work
chronicle summarize week # AI summary of last 7 daysFeatures:
- โขMulti-provider support - Choose between Gemini (cloud, 1M context) or Ollama (local, unlimited)
- โขTranscript cleaning - Removes ANSI codes and duplicates (typically 50-90% size reduction)
- โขAutomatic summarization - AI summary generated when you view the session
- โขAuto-caching - Generate once, view instantly forever
- โขIntelligent prompts - Extracts key decisions, files modified, blockers
- โขMarkdown formatting - Beautiful, structured summaries
- โขMulti-source analysis - Analyzes both git commits and AI sessions
Example Summary:
## What Was Built
- Implemented Phase 3 summarization with Gemini API integration
- Added chronicle session command with auto-summarization
## Key Decisions
- Automatic summarization triggered when viewing sessions
- Cached summaries in database for instant retrieval
## Files/Components Modified
- backend/cli/commands.py
- backend/cli/formatters.py
- backend/services/summarizer.py๐๏ธ Multi-Project Organization
Chronicle automatically tracks which repository each session belongs to:
When you start a session, Chronicle automatically:
- โขDetects your current working directory
- โขFinds the git repository root (if in a git repo)
- โขAssociates the session with that project
cd /Users/you/repos/my-app
chronicle start claude
# Session automatically tagged with "my-app" repositoryView sessions, timelines, and summaries for specific projects:
# View sessions for a specific project
chronicle sessions --repo /Users/you/repos/my-app
# Summarize work on specific project
chronicle summarize today --repo /Users/you/repos/my-app
chronicle summarize week --repo /Users/you/repos/other-project
# Timeline for specific project
chronicle timeline today --repo /Users/you/repos/my-appBenefits:
- โขTrack work across multiple projects separately
- โข"What did I do on project X this week?"
- โขOrganize sessions by codebase
- โขPerfect for contractors juggling multiple clients
โ Phase 4: MCP Server + AI Integration (COMPLETE)
Give your AI assistants the ability to query Chronicle's database directly!
The Chronicle MCP (Model Context Protocol) server allows any MCP-compatible AI (Claude Code, ChatGPT, etc.) to query your Chronicle database and retrieve past sessions, commits, and decisions.
Setup:
- Install Chronicle with MCP support:
``bash pip install -e . ``
- Configure MCP client (e.g.,
~/.mcp.json):
``json { "mcpServers": { "chronicle": { "command": "python3", "args": ["/path/to/chronicle/scripts/chronicle-mcp"] } } } ``
- Restart your AI tool (Claude Code, etc.)
- Verify: Type
/mcpto see available servers
Available MCP Tools:
The Chronicle MCP server provides 21 tools that AI assistants can use:
Session & Commit Queries:
| Tool | Purpose | Example |
|---|---|---|
get_sessions | List recent sessions | "Show me sessions from this week" |
get_session_summary | Get session details | "What happened in session 15?" |
search_sessions | Search session content | "Find where we discussed authentication" |
get_sessions_summaries | Batch retrieve summaries | "Get summaries for sessions 5, 6, 7" |
get_commits | List git commits | "Show commits from the my-app repo" |
search_commits | Search commit messages | "Find bug fix commits" |
get_timeline | Combined view | "Show me today's work" |
get_stats | Usage statistics | "How much did I use AI tools this month?" |
Project Management (CRUD Operations):
| Tool | Purpose | Example |
|---|---|---|
get_milestones | List milestones | "Show in-progress features" |
get_milestone | Get milestone details | "What's milestone 3 about?" |
create_milestone | Create new milestone | "Plan new authentication feature" |
update_milestone | Edit milestone | "Update priority to 1" |
delete_milestone | Remove milestone | "Delete test milestone" |
update_milestone_status | Change status | "Mark as completed" |
get_next_steps | List TODOs | "What should I work on?" |
create_next_step | Add TODO | "Create task to write tests" |
update_next_step | Edit TODO | "Change priority" |
delete_next_step | Remove TODO | "Delete obsolete task" |
complete_next_step | Mark done | "Mark step 5 as done" |
uncomplete_next_step | Reopen TODO | "Reopen completed task" |
get_roadmap | Project overview | "Show current roadmap" |
Real-World Example:
You: "How did I implement caching in that other project last month?"
Claude: [Uses Chronicle MCP]
โ search_sessions("caching")
โ get_session_summary(session_id=42)
Claude: "In session 42 from September 15th, you implemented Redis
caching for the API endpoints. Here's what you decided..."Benefits:
- โข๐ง AI assistants have persistent memory across sessions
- โข๐ Instant context retrieval from past work
- โข๐ AI can analyze patterns in your workflow
- โข๐ค Works with any MCP-compatible AI tool
- โข๐ 100% local (no data leaves your machine)
Documentation: See MCP_SERVER.md for full details.
๐ฏ Claude Skills Integration
For Claude Code users, Chronicle provides pre-built Claude Skills that automate common workflows:
Available Skills:
- chronicle-session-documenter
- Automatically documents sessions to Obsidian vault - Creates structured markdown notes with metadata - Links related sessions, commits, and repos
- chronicle-context-retriever
- Searches past sessions for relevant context - Triggered by questions like "how did I..." or "what did we..." - Provides summaries of past decisions
- chronicle-workflow
- Complete Chronicle workflow guidance - Best practices for multi-project tracking - Helps set up and optimize Chronicle usage
Installation:
# One-time setup in Claude Code
/plugin marketplace add ChandlerHardy/chronicle
/plugin install chronicle-workflow-skills@chronicle-skillsHow It Works:
Skills are "smart prompt templates" that automatically trigger when relevant:
You: "Document session 15 to my Obsidian vault"
Claude: [Automatically uses chronicle-session-documenter skill]
โ Retrieves session summary
โ Creates markdown note with frontmatter
โ Adds wikilinks to related sessions
โ Saves to vault at Chronicle/Sessions/Session-15.mdDocumentation: See chronicle-skills/README.md for details.
๐ค Intelligent Agents (Cross-Platform)
Chronicle includes two specialized agents that proactively enforce best practices. Unlike skills (Claude Code only), agent prompts work across platforms - adaptable for Cursor, Windsurf, and other AI assistants.
Available Agents:
- Chronicle Advocate Agent
- Reminds to search Chronicle before implementing (2,700x ROI!) - Checks if session is being tracked - Enforces MCP usage over slow CLI commands - Suggests organizing sessions with titles/tags - Prevents repeating work from past sessions
- TDD Advocate Agent
- Encourages test-driven development workflow - Reminds to write tests before implementation - Runs pytest after code changes - Ensures all tests pass before commits - Celebrates test successes โ
Setup (Claude Code):
# Use the /agents command in Claude Code
/agents
# Select "Create new agent"
# Copy prompts from AGENTS.md
# Restart Claude Code to activateKey Advantage: Agent prompts are portable! The same prompt works in:
- โขClaude Code (via
/agents) - โขCursor (via
.cursorrules) - โขWindsurf (via project config)
- โขAny AI tool with custom instructions
Documentation: See [AGENTS.md](AGENTS.md) for full prompts and cross-platform setup.
๐ Obsidian Integration (Optional)
Export Chronicle sessions to Obsidian for visual knowledge graphs and bidirectional linking.
Setup:
Configure the Obsidian MCP server in ~/.mcp.json:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": [
"@mauricio.wolff/mcp-obsidian@latest",
"/path/to/your/obsidian/vault"
]
}
}
}Features:
- โขExport sessions as markdown notes with YAML frontmatter
- โขWikilinks between related sessions and commits
- โขTag-based organization for Obsidian graph view
- โขRepository-based folder structure
- โขSearch entire vault from Claude Code
Example Vault Structure:
Chronicle/
โโโ Repos/
โ โโโ my-app/
โ โ โโโ Sessions/
โ โ โ โโโ Session-15.md
โ โ โ โโโ Session-16.md
โ โ โโโ Commits/
โ โโโ other-project/
โ โโโ Sessions/
โโโ Daily/
โโโ 2025-10-20.mdComing Soon: chronicle export obsidian command for batch export.
๐ Example Outputs
Daily Summary
$ chronicle show today
Development Session - October 19, 2025
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Session Statistics โ
โ โข Commits: 5 โ
โ โข Files Changed: 12 โ
โ โข Repositories: 2 โ
โ โข Authors: 1 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Commits
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
10:30 AM [abc1234] Add user authentication
โ src/auth.ts
โ src/middleware.ts
02:15 PM [def5678] Update README with usage examples
โ README.mdAI Interaction Timeline
$ chronicle ai today
AI Interactions Today
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
02:30 PM โจ Gemini
"How do I implement caching in Python?"
โ You can use functools.lru_cache decorator...
โฑ 2.3s
โ Linked to commit abc1234
01:45 PM ๐ฎ Qwen
"Review this authentication code"
โ The code looks good overall. Consider adding rate limiting...
โฑ 3.1sAI Usage Statistics
$ chronicle ai-stats --days 7
AI Tool Usage (Last 7 days)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ
โ AI Tool โ Interactions โ Percentage โ Avg Duration โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Claude โ 15 โ 65.2% โ 4.2s โ
โ โ โ โโโโโโโโโโโโ โ โ
โ Gemini โ 6 โ 26.1% โ 2.1s โ
โ โ โ โโโโโโโโโโโโ โ โ
โ Qwen โ 2 โ 8.7% โ 3.5s โ
โ โ โ โโโโโโโโโโโโ โ โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
Total interactions: 23Combined Timeline
$ chronicle timeline today
Combined Development Timeline
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
02:30 PM โจ Gemini
"How do I implement caching in Python?"
02:25 PM [abc1234] Add caching to API endpoints
โ api/cache.py
โ api/endpoints.py
01:45 PM ๐ฏ Claude (Session, 45m)
"Built authentication system"
โ src/auth.ts
โ src/middleware.ts
โ Linked to commit def5678
01:30 PM [def5678] Implement JWT authentication
โ auth/jwt.ts๐๏ธ Database Schema
Chronicle uses SQLite for local-first storage at ~/.ai-session/sessions.db:
Tables
commits - Git commit tracking
- โขtimestamp, SHA, message, files_changed (JSON)
- โขbranch, author, repo_path
ai_interactions - AI tool interactions
- โขtimestamp, ai_tool, prompt, response_summary
- โขduration_ms, files_mentioned (JSON)
- โขis_session, session_transcript, summary_generated
- โขrelated_commit_id (foreign key)
daily_summaries - Daily development summaries (Phase 3)
- โขdate, summary, topics (JSON), files_affected (JSON)
- โขcommits_count, ai_interactions_count, key_decisions (JSON)
Data Storage
- โขDatabase:
~/.ai-session/sessions.db - โขSession transcripts:
~/.ai-session/sessions/session_N.log - โขSession metadata:
~/.ai-session/sessions/session_N.meta - โขConfiguration:
~/.ai-session/config.yaml
๐งช Testing
Chronicle has comprehensive test coverage:
# Run all tests
pytest
# Run with coverage
pytest --cov=backend tests/
# Current status: 140 passing tests, 1 skipped
# Test modules:
# - test_ai_tracker.py: 13 tests (AI interaction logging)
# - test_claude_provider.py: 44 tests (Claude Code provider)
# - test_cli_commands.py: 17 tests (CLI command interface)
# - test_git_monitor.py: 8 tests (Git commit tracking)
# - test_import_export.py: 15 tests (Data import/export, 1 skipped)
# - test_project_tracking.py: 9 tests (Project milestones & next steps)
# - test_session_manager.py: 22 tests (Session recording & management)
# - test_summarizer.py: 15 tests (AI summarization)๐ฃ๏ธ Roadmap
โ Phase 1: Git Tracking (COMPLETE)
- โข[x] Git commit monitoring
- โข[x] CLI query interface
- โข[x] Search and statistics
- โข[x] Comprehensive test coverage
โ Phase 2: AI Tracking (COMPLETE)
- โข[x] AI interaction logging
- โข[x] Session wrapper for Claude/Gemini/Qwen
- โข[x] Multi-AI timeline view
- โข[x] Usage statistics
- โข[x] Configuration system
- โข[x] Comprehensive test coverage
โ Phase 3: Summarization (COMPLETE)
- โข[x] Gemini API integration
- โข[x] Ollama local LLM support
- โข[x]
chronicle sessioncommand with auto-summarization - โข[x]
chronicle summarize today/weekcommands - โข[x] Chunked summarization for unlimited session sizes
- โข[x] Automatic summarization with caching
- โข[x] Intelligent prompt engineering
- โข[x] Markdown-formatted summaries
- โข[x] Multi-project tracking and filtering
โ Phase 4: MCP Server + AI Integration (COMPLETE)
- โข[x] Chronicle MCP server with 21 tools (8 query + 13 project management)
- โข[x] Full CRUD operations for milestones and next steps
- โข[x] FastMCP framework integration
- โข[x] Read/write database access for AI tools
- โข[x] Support for any MCP-compatible AI (Claude, ChatGPT, etc.)
- โข[x] Obsidian MCP server integration
- โข[x] Claude Skills marketplace integration
- โข[x] 3 pre-built skills (documenter, retriever, workflow)
- โข[x] Multi-repository session organization
- โข[x] Comprehensive documentation (MCP_SERVER.md)
โ Phase 5: Project Tracking & Meta-Development (COMPLETE)
Chronicle now tracks its own development! Database-backed milestones and next steps eliminate manual documentation updates.
Instead of maintaining DEVELOPMENT_HISTORY.md manually, Chronicle tracks project state in its database:
# Plan a feature
chronicle milestone "Add authentication" \
--description "Implement OAuth2 with Auth0" \
--type feature \
--priority 1 \
--tags "backend,auth,security"
# Break down into actionable tasks
chronicle next-step "Design auth flow" --priority 1 --effort medium --milestone 1
chronicle next-step "Implement OAuth2 client" --priority 1 --effort large --milestone 1
chronicle next-step "Add token refresh" --priority 2 --effort medium --milestone 1
chronicle next-step "Write integration tests" --priority 2 --effort small --milestone 1
chronicle next-step "Update API documentation" --priority 3 --effort small --milestone 1
# Mark milestone as active
chronicle milestone-status 1 in_progress
# As you work, link sessions to the milestone
chronicle start claude
# ... work on authentication ...
exit
chronicle link-session 18 --milestone 1
# Complete tasks as you finish them
chronicle next-step-complete 1
chronicle next-step-complete 2
# View project progress anytime
chronicle roadmapOutput:
Chronicle Development Roadmap
๐ง In Progress
โข Add authentication (feature, 3 sessions)
๐ Next Steps
โข [P2] Add token refresh [medium]
โข [P2] Write integration tests [small]
โข [P3] Update API documentation [small]
๐ Milestones: 5/12 completed | Next Steps: 2/5 doneBefore (manual documentation):
- โขโ Manually update DEVELOPMENT_HISTORY.md after every feature
- โขโ Forget to document work-in-progress
- โขโ Can't query "what's next?" programmatically
- โขโ No link between sessions and features
- โขโ Documentation becomes stale
After (database-tracked):
- โขโ Queryable by AI - "What should I work on next?" โ Instant answer from database
- โขโ Auto-linked - Sessions automatically connect to milestones
- โขโ
Real-time roadmap -
chronicle roadmapshows current state - โขโ Report generation - Query completed milestones for weekly summaries
- โขโ Dogfooding - Chronicle tracks building Chronicle!
Milestones:
chronicle milestone <title> # Create milestone
chronicle milestones # List all milestones
chronicle milestones --status in_progress # Filter by status
chronicle milestones --type feature # Filter by type
chronicle milestone-show <id> # View details
chronicle milestone-status <id> <status> # Update status
chronicle milestone-complete <id> # Mark completeNext Steps:
chronicle next-step <description> # Add TODO
chronicle next-steps # List pending
chronicle next-steps --all # Include completed
chronicle next-steps --milestone <id> # Filter by milestone
chronicle next-step-complete <id> # Mark doneProject Management:
chronicle link-session <session_id> --milestone <id> # Link session
chronicle roadmap # View progress
chronicle roadmap --days 30 # Last 30 daysAI assistants can query and manage project state via Chronicle MCP server:
# Read Operations
milestones = mcp__chronicle__get_milestones(status="in_progress")
roadmap = mcp__chronicle__get_roadmap(days=7)
steps = mcp__chronicle__get_next_steps(milestone_id=1, completed=False)
# Create Operations
new_milestone = mcp__chronicle__create_milestone(
title="Add export feature",
description="Export sessions to PDF/Markdown",
milestone_type="feature",
priority=2,
tags="phase-7,export"
)
new_step = mcp__chronicle__create_next_step(
description="Write export logic",
priority=1,
effort="large",
category="feature",
milestone_id=4
)
# Update Operations
mcp__chronicle__update_milestone(milestone_id=4, priority=1, tags="urgent,export")
mcp__chronicle__update_next_step(step_id=12, effort="medium", category="optimization")
mcp__chronicle__update_milestone_status(milestone_id=1, new_status="completed")
# Complete/Reopen
mcp__chronicle__complete_next_step(step_id=5)
mcp__chronicle__uncomplete_next_step(step_id=5) # Reopen if needed
# Delete Operations (with confirmation)
mcp__chronicle__delete_next_step(step_id=99, confirm=True)
mcp__chronicle__delete_milestone(milestone_id=99, confirm=True)AI Use Cases:
- โข"What should I work on next?" โ Queries roadmap, suggests highest priority
- โข"What's the status of authentication work?" โ Finds milestone, shows linked sessions
- โข"Generate a weekly progress report" โ Queries completed milestones, summarizes
- โข"Mark this session as working on feature X" โ Auto-links session to milestone
New: chronicle-project-tracker
- โขComplete workflow for planning features
- โขQuerying roadmap via MCP
- โขLinking sessions to milestones
- โขGenerating progress reports
- โขAuto-documentation patterns
Use: "What's in our roadmap?" or "Plan a new feature" โ Skill loads automatically
project_milestones:
- โข
id,title,description - โข
status- planned, in_progress, completed, archived - โข
milestone_type- feature, bugfix, optimization, documentation - โข
priority- 1 (highest) to 5 (lowest) - โข
related_sessions- JSON array of session IDs - โข
related_commits- JSON array of commit SHAs - โข
tags- JSON array for filtering
next_steps:
- โข
id,description,priority - โข
estimated_effort- small, medium, large - โข
category- feature, optimization, fix, docs - โข
completed- boolean - โข
related_milestone_id- FK to milestone
Chronicle used itself to build this feature:
# Created milestone #1
chronicle milestone "Add project tracking to Chronicle" \
--type feature --priority 1 --tags "phase-5,meta,dogfooding"
# Broke down work
chronicle next-step "Design database schema" --priority 1 --effort medium --milestone 1
chronicle next-step "Add CLI commands" --priority 1 --effort large --milestone 1
chronicle next-step "Add MCP tools" --priority 1 --effort medium --milestone 1
chronicle next-step "Create Chronicle Skills" --priority 2 --effort medium --milestone 1
chronicle next-step "Write tests" --priority 2 --effort small --milestone 1
# Marked in progress
chronicle milestone-status 1 in_progress
# As work completed
chronicle next-step-complete 1 # Schema done
chronicle next-step-complete 2 # CLI done
chronicle next-step-complete 3 # MCP tools done
chronicle next-step-complete 4 # Skills done
chronicle next-step-complete 5 # Tests done (25 passing!)
# Finished!
chronicle milestone-complete 1
# Result
chronicle roadmap
# โ
Completed (last 7 days)
# โข Add project tracking to Chronicle (Oct 22)
# ๐ Milestones: 1/1 completed | Next Steps: 5/5 doneChronicle now uses Chronicle to build Chronicle! ๐ฏ
๐ฎ Future Phases
- โข[ ] Next.js web dashboard with roadmap visualization
- โข[ ] Timeline UI showing milestones + sessions + commits
- โข[ ]
chronicle export obsidian- Batch export with milestone linking - โข[ ] Blog post generator from weekly summaries
- โข[ ] Auto-generate DEVELOPMENT_HISTORY.md from milestones
- โข[ ] Team features (shared Chronicle databases)
- โข[ ] VS Code extension
- โข[ ] GitHub Actions integration for PR descriptions
๐๏ธ Architecture
Local-First Design
Chronicle is designed to be private and fast:
- โขโ All data stored in local SQLite database
- โขโ No cloud sync required (optional in future)
- โขโ Works offline
- โขโ Full control over your data
Automatic Summarization
Sessions are recorded immediately, summaries are generated automatically when you view them:
Session Start
โ
Record full transcript โ Save to DB (fast!)
โ
On first view โ Generate summary with Gemini
โ
Cache summary for future viewsBenefits:
- โขFast session exit (no waiting for summarization)
- โขAutomatic summarization when you view sessions
- โขCan work offline (view raw transcripts)
๐ค Contributing
Chronicle is open source! Contributions welcome.
Ideas for contributions:
- โขAdd support for more AI CLIs (Cursor, GitHub Copilot, Windsurf, etc.)
- โขBuild the
chronicle export obsidiancommand - โขCreate the Next.js dashboard (Phase 5)
- โขImprove test coverage (especially MCP server tests)
- โขAdd MCP resources (expose session transcripts as MCP resources)
- โขBuild prompt templates for common Chronicle queries
๐ License
MIT License - see LICENSE
๐ Acknowledgments
Built with:
- โขClaude Code - AI coding assistant (and tracked by Chronicle itself! ๐ฏ)
- โขGoogle Gemini - AI summarization
- โขFastMCP - MCP server framework
- โขModel Context Protocol - AI tool integration standard
- โขPython 3.11+ - Core logic
- โขSQLite - Local storage
- โขClick - CLI framework
- โขRich - Terminal formatting
- โขGitPython - Git integration
- โขSQLAlchemy - ORM
๐ Documentation
- โข[AGENTS.md](AGENTS.md) - Chronicle Advocate & TDD Advocate agents (cross-platform)
- โข[MCP_SERVER.md](MCP_SERVER.md) - Chronicle MCP server guide (setup, tools, examples)
- โข[CLAUDE.md](CLAUDE.md) - Development context for AI assistants
- โขProject Specification - Full specification and roadmap
- โขChangelog - Version history
- โขChronicle Skills - Claude Skills documentation
- โขExample Context - Example from Crooked Finger project
Chronicle: Never lose context again. ๐ฏ
Track your AI-assisted development journey, compare approaches, and build institutional knowledge across all your AI coding assistants.
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/chronicle-workflow-skills.md https://raw.githubusercontent.com/ChandlerHardy/chronicle/main/SKILL.md/chronicle-workflow-skillsFrequently Asked Questions
What is chronicle-workflow-skills?
Complete Chronicle workflow skills including session documentation, context retrieval, and development tracking
How to install chronicle-workflow-skills?
To install chronicle-workflow-skills, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /chronicle-workflow-skills.
What is chronicle-workflow-skills best for?
chronicle-workflow-skills is a community categorized under Documentation. It is designed for: documentation. Created by Chandler Hardy.