Code intelligence and knowledge CLI for Go repositories.
Recon indexes Go source code — packages, files, symbols, imports, and dependencies — into a local SQLite database and provides commands for navigating, searching, recording decisions with evidence, detecting patterns, and orienting within a codebase.
# Install
go install github.com/robertguss/recon/cmd/recon@latest
# Initialize in your Go project
cd your-go-project
recon init
# Index your codebase
recon sync
# Get project context
recon orientIndex and search — Parse Go source files and query symbols, files, imports, and dependencies with structured output instead of regex guessing.
recon find HandleRequest # exact symbol lookup
recon find --kind func --package ./api/ # list functions in a package
recon find Receiver.Method # dot syntax for methodsRecord decisions — Capture architectural decisions with evidence that is automatically verified against the codebase. Decisions track confidence levels and detect drift when the code changes.
recon decide "Use Cobra for CLI" \
--reasoning "industry standard Go CLI framework" \
--evidence-summary "go.mod contains cobra" \
--check-type file_exists --check-path go.modDetect patterns — Record recurring code patterns with verification checks.
recon pattern "Error wrapping with %w" \
--description "All errors wrapped with fmt.Errorf and %w" \
--evidence-summary "grep finds consistent %w usage" \
--check-type grep_pattern --check-pattern "Errorf.*%%w"Recall knowledge — Full-text search across recorded decisions and patterns.
recon recall "error handling"
recon recall "database"Orient — Get a structured context payload: project summary, architecture, module heat map, active decisions, recent activity.
recon orient # human-readable text
recon orient --json # structured JSON for agents| Command | Purpose |
|---|---|
recon init |
Initialize .recon/ directory, database, and Claude Code integration |
recon sync |
Index Go source code into the database |
recon orient |
Project context: structure, activity, decisions, patterns |
recon find |
Search symbols, files, imports with filtering |
recon decide |
Record decisions with evidence verification |
recon pattern |
Record recurring code patterns |
recon recall |
Full-text search across decisions and patterns |
recon status |
Quick health check |
All commands support --json for machine-readable output and --no-prompt to
disable interactive prompts.
See docs/users/commands.md for the complete CLI reference.
Recon is designed to work as a knowledge layer for AI coding agents. Running
recon init installs:
- A SessionStart hook that runs
recon orient --json-strict --auto-syncat the start of each Claude Code session - A skill (
/recon) for structured symbol lookup and decision recording - Settings that allow the recon tool to run without permission prompts
See docs/users/claude-code-integration.md for details.
- Go 1.26+
- A Go module (project must have a
go.modfile)
For users:
- Getting Started — Installation, setup, first workflow
- Commands Reference — Every command, flag, and option
- Workflows — Decision lifecycle, pattern detection, recall
- Claude Code Integration — Hook, skill, settings
- Troubleshooting — Common errors and solutions
For developers:
- Architecture — System design and component relationships
- Database Schema — Tables, relationships, FTS5 strategy
- Services — Domain service APIs and patterns
- Testing — Test strategy, sqlmock vs real SQLite
- Contributing — Dev setup, conventions, PR workflow
- ADRs — Architecture Decision Records
This project uses just as a command runner.
just build # Build binary to ./bin/recon
just install # Install to GOPATH/bin
just test # Run full test suite
just test-race # Run tests with race detector
just cover # Generate coverage report
just fmt # Format all Go filesSee LICENSE for details.