v1.3.0
Auto-configure MCP in Claude Desktop — PR #101, closes #100
Reduces onboarding friction from ~5 minutes of manual JSON editing to a single command. Critical for
non-developer users (managers, founders) who are part of the target market.
- New command:
cogniscape setup mcp — reads the customer key from ~/.cogniscape/config.json and
injects the cogniscape-reader MCP server entry into Claude Desktop’s config at
~/Library/Application Support/Claude/claude_desktop_config.json
- Supports
cogniscape setup mcp --uninstall for clean removal — only removes the Cogniscape entry,
leaving all other MCP servers untouched
- Customer key is URL-encoded via
url.Values to handle special characters safely
- Idempotent — running the command again updates the entry with the current key
Edge cases handled:
| Scenario | Behavior |
|---|
| Claude Desktop config does not exist | Creates the file and parent directories |
| Cogniscape entry already present | Updates in place with the current customer key |
| Other MCP servers configured | Preserved — only the cogniscape-reader entry is touched |
| Invalid or corrupted JSON config | Backs up the original file to .cogniscape-backup, warns on stderr, and starts fresh |
| Customer key not configured | Returns an error directing the user to run cogniscape init first |
| Backup write fails (e.g. disk full) | Warning message reflects the failure instead of claiming success |
macOS only in this release. Linux and Windows paths will be added in a future version.
v1.2.1
API domain migration — closes #59
Replaced all references to the legacy server.cogniscape.app domain with the production api.cogniscape.app
endpoint. This affected the hardcoded defaultAPIURL constant in the CLI and all deployment configs.
- Updated
defaultAPIURL from https://server.cogniscape.app to https://api.cogniscape.app
- All CLI commands (
send-episode, writer, config) now target the new domain
- No user action required — the CLI resolves the API URL automatically
v1.2.0
Project name tracking — PR #57
Session summaries now include the project name, enabling per-project filtering and grouping in the
knowledge graph. The project name is derived from the working directory at the time the session ends.
session-summary events include a project_name field extracted via filepath.Base(cwd)
- Propagated through the full stack: Go CLI → Python event model → database migration → Cogniscape MCP tool response
- Guards added for edge cases where
cwd is empty, /, or .
v1.1.0
Session duration and per-model token tracking — PR #56, PR #51
Two features that together enable ROI cost estimation: knowing how long a session lasted and how many
tokens each model consumed.
Session duration (#56):
- Extracts first and last timestamps from the Claude Code transcript JSONL
- Computes
duration_seconds and includes it in session-summary events
- Returns
0 gracefully when timestamps are unavailable
Per-model token tracking (#51):
extractSessionTokens now parses message.model from transcript entries and returns a []ModelTokens
breakdown instead of a single aggregate
- Each entry tracks:
input_tokens, output_tokens, cache_read_input_tokens, cache_creation_input_tokens
- Snapshot updates (
isSnapshotUpdate: true) are excluded to avoid double-counting
- Entries without a model field are bucketed under
unknown-model
- Database schema changed:
token_usage unique constraint is now (session_id, model) to support
multiple model rows per session
- New
model_pricing table seeded with Anthropic pricing for cost estimation
- Cogniscape MCP’s
get_token_usage tool now returns estimated costs; new get_developer_roi tool shows
daily cost trends per developer
v1.0.0
Initial release — PR #81
The first stable release of the Cogniscape CLI after rebranding from DevVis. Provides the full
pipeline from Claude Code hooks to knowledge graph ingestion.
Onboarding commands:
cogniscape init <customer-key> — saves the customer key to machine-level config at
~/.cogniscape/config.json and installs Claude Code hooks automatically
cogniscape update-key <new-key> — updates the customer key without re-running init
cogniscape setup-hooks — installs or repairs Claude Code hooks in ~/.claude/settings.json,
preserving third-party hooks. Creates a backup before modifying
cogniscape uninstall — removes all Cogniscape hooks from settings and deletes the binary
Hook adapter:
cogniscape send-episode --event <name> — translates Claude Code hook payloads into normalized
development events and posts them to the Cogniscape API
- Supported events:
session-start, plan-approved, task-created, task-completed, session-summary
- Enriches events with developer identity (from
git config user.name), repository name (from git root),
and stable event IDs (SHA-256 hash of payload)
- Never fails loudly — all errors are logged to
~/.cogniscape/hooks.log and the process exits with
code 0 to avoid blocking Claude Code
- Task metadata caching:
task-created stores subject/description in ~/.cogniscape/task-cache/ so
task-completed can include a meaningful title and result. Cache is purged on session end
Writer commands:
cogniscape writer add-episode — write explicit episodes to the knowledge graph (text or JSON body,
with support for --body-file and stdin)
cogniscape writer add-facts — create relationship triplets (source → relationship → target)
cogniscape writer add-entity — create entities by writing synthetic descriptive episodes
Configuration:
cogniscape config show — display full resolved configuration
cogniscape config get api-url — show the configured API URL
cogniscape version — print the CLI version
- Customer key resolution order:
--customer-key flag → COGNISCAPE_CUSTOMER_KEY env var → config file
- Hook log rotation: keeps the last 1,000 lines, only rewrites when file exceeds 80 KB