Integration
The output of Reasons Forge is a reasons.db file — a self-contained SQLite database with all beliefs, justifications, and metadata. This file is the universal interchange format between Forge (production) and client tools (consumption).
Reasons.app (macOS)
Section titled “Reasons.app (macOS)”A menu bar app that runs a Reasons MCP server. Download from reasonsforge.com.
- Build your knowledge base:
reasonsforge code --repo ./project --output reasons.db - Add it as a domain in
~/.reasons/domains.toml - Reasons.app serves it via MCP to Claude Desktop, Claude Code, and other clients
reasons CLI
Section titled “reasons CLI”Direct terminal access to any reasons database.
# Searchreasons --db reasons.db search "authentication"
# Show a specific beliefreasons --db reasons.db show auth-jwt-decision
# Explain why a belief is IN or OUTreasons --db reasons.db explain auth-jwt-decision
# Visualize the dependency treereasons --db reasons.db tree auth-jwt-decision --direction both
# List high-impact beliefsreasons --db reasons.db list --by-impactClaude Code
Section titled “Claude Code”Add the reasons MCP server to Claude Code:
claude mcp add --scope user reasons -- reasons mcp --db /path/to/reasons.dbOr use the CLI directly in Claude Code sessions — it’s faster (one Bash call vs multiple MCP round trips).
Claude Desktop
Section titled “Claude Desktop”Drag the reasons-mcp.skill.md file into Claude Desktop to add the Reasons skill. Or configure the MCP server in claude_desktop_config.json:
{ "mcpServers": { "reasons": { "command": "reasons", "args": ["mcp", "--db", "/path/to/reasons.db"] } }}Gemini CLI
Section titled “Gemini CLI”Configure the reasons MCP server for Gemini CLI using MCP stdio transport.
Any MCP client
Section titled “Any MCP client”The reasons MCP server supports both stdio and Streamable HTTP transports. Any MCP-compatible client can connect.
Stdio: reasons mcp --db /path/to/reasons.db
HTTP: Reasons.app runs on http://localhost:6519/mcp
Raw SQLite
Section titled “Raw SQLite”It’s just a database file. Open it with any SQLite client:
sqlite3 reasons.db "SELECT node_id, text, status FROM beliefs WHERE status = 'IN' LIMIT 10"