Skip to main content
Monogram is Monolex’s code-intelligence engine. It turns a source tree into ranked locations, exact symbols, call and dependency graphs, cross-boundary coupling evidence, and deep semantic worklists. The goal is not to guess from a function name; it is to move from a symptom to bounded source evidence and then prove the owning path. Published contract: monogram 0.98.6, OpenCLIs build 2026-07-16-205859. Run monogram --version to identify the binary you are using. In an agent/non-TTY process, bare monogram prints the compact entry brief; use monogram docs initiate or monogram help --full for the complete embedded reference.

Quick start

Every investigation result includes executable [NEXT] guidance. A normal path is:

Agent entry and embedded docs

The 0.98.6 release retains the survivable agent entry introduced in 0.97.0 and keeps the full command manual available on demand:
The topic list also includes audit-guide, flow-guide, ownership-ffi-guide, and sequence. Human-readable stats, search, and region output routes through a mutation-aware three-state sequence entry gate:
  • A new recognized task file emits a runnable sequence start task --from <path> hint. Recognized cwd files are TASK.md, PLAN.md, BUG.md, .task.md, and .monobench-task-instruction.md; the historical /tmp Monobench instruction path remains supported.
  • An open current session initially emits one ORDER OPEN (<id>) line naming its connection-points.md path and the required final sequence finish verb, so a compacted agent can re-enter the binding order. Once a checked file in the saved scope has an mtime newer than the UTC session start, the line escalates to edits detected in its scope and the final-close form.
  • A finished session stays silent for the same task digest, while a different task file triggers the entry hint again. A virgin root with no recognized file retains the generic sequence start ... --from <task-or-bug.md> placeholder.
sequence start --from stores the task’s source_path and FNV-1a 64-bit identity source_digest in meta.json. The digest gates duplicate guidance; it is not a cryptographic integrity claim. This release does not add an MCP tool: monogram mcp-schema still reports exactly 50 investigation commands. Successful stats --json, search --json, and region --json payloads now include sequence_hint: it is the same state-aware edge as a string, or null when no edge applies. The MCP server forces those commands through JSON, so MCP clients receive the same field without a second state machine or schema command. The existing sequence tool retains its binding [IAW-SOP] ORDER chain and closing verb sequence finish. start and define expose that ordered contract in human and JSON output; status and resume re-emit the current phase after context loss. Run finish after the last Edit/Write: it re-presents the saved task contract and available Book knowledge, writes finish.json, changes the session phase to finished, and tells the agent to make no later source mutation. At the pinned 0.98.6 release commit, the packaged initiate.md, SKILL, public registry flow, and public pages describe the same edit-escalation and sequence_hint JSON/MCP contract as the binary. The installed external guide has SHA-256 94a31c100ca3efc128c12053d22b02be54a9a677241d6903f5feae5b9c9f1751. Current repository source is ahead under the benchmark prerelease identity 0.98.6-sqlfmt-empty-parity.1: its guide has SHA-256 dbb1812866a6291ebc576106ec72a948fb7cdd24f2bd8a1156c9c6d0daa0c963 and describes the not-yet-published hook install/remove/status lifecycle for 0.98.7+. That source-ahead guide does not retroactively add those verbs to the public 0.98.6 payload. Its source manifest also carries shorter prerelease description, ai_use, and initiate_md text; the public registry metadata remains pinned to the released scoped-edit escalation and JSON/MCP sequence_hint contract. The release also carries forward the Windows-safe ASCII release gate, the synchronized NIIA standalone lock, and the lib-monosession optional SQLite boundary required by the all-CLI release gate. version --json is not a supported form; use monogram --version or monogram version for the executing identity.
0.98.5 was a short-lived transition build: it introduced the runtime fields, but its macOS publish and tag named different source commits and its installed guide did not yet describe the new response contract. 0.98.6 supersedes it with one clean commit shared by the package guide, registry, tag, and release matrix.
For isolated CI, benchmark, or disposable-worktree runs, set MONOGRAM_HOME=<dir>. Core and semantic databases then live under <dir>/monogram/, while sequence sessions and their finish.json witnesses live under <dir>/problem-definitions/. Without the override, sequence state remains repo-local under .monogram/problem-definitions/. Version 0.98.2 closed the earlier leak where sequence artifacts could enter a benchmark Git patch even though the index databases were already isolated; 0.98.6 retains that isolation and the 0.98.3 per-task provenance inside the isolated session.

What Monogram owns

The evidence boundary

Monogram deliberately separates observation from conclusion:
  • Search and region scores rank likely source locations. They do not prove causality.
  • uncalled reports no inbound edge in the indexed graph. Dynamic, reflective, trait, external, and test callers may be invisible.
  • Deep semantic commands and possibility bands return candidates or complete review worklists. A row is not automatically a defect.
  • coupling --verify-callers reports inbound-edge facts for orphan definitions; public APIs and dynamically invoked handlers still require interpretation.
  • The stable proof loop is context the concrete row, follow it with chain or investigate, inspect the owning boundary, and rerun the same query after a change.

Public MCP surface: 50 tools

monogram mcp exposes 50 investigation tools over stdio JSON-RPC. monogram mcp-schema prints the exact wrapper schema used by the server.
The 50-tool surface includes locate, navigation, contract, coupling, quality, deep-semantic, and possibility-band commands. The complete inventory and purpose of every tool is in Monogram Reference. Index and terminal administration are intentionally separate from that 50-tool count. Commands such as index, reindex, prune, scope, docs, verify, hook claude, and mcp manage local state or integration rather than serving as MCP investigation tools. In the sequence family, start, deepen, define, finish, and resume change repo-local session artifacts; only status and list are read-only. boot init also writes configuration. See the mutation boundaries on the companion pages.

Supported languages

The core index recognizes 24 language families: The basic index extracts search identifiers, symbols, references, calls, imports, and boundary keys where the language adapter supports them. The deep semantic companion is a separate evidence plane: verify it with monogram semantic status before relying on deep commands.

Project-scoped indexes

Each registered project root has its own database. Monogram resolves the deepest indexed ancestor of the current working directory, so your current directory is part of every query.
In a monorepo, cd into the intended indexed subtree before making an absence claim. Learn the registry, workspace expansion, schema-v17 corpus policy, selective recovery, and fail-closed deep-index rules in Scope & Index Management.

Installation and release identity

Monogram is distributed through OpenCLIs:
The installed binary, the OpenCLIs registry entry, and a development checkout can be at different versions. Public behavior should be claimed from the installed release and its live mcp-schema; source-only changes are not a shipped feature. The public registry guide includes the ordered sequence flow and relationships to NIIA, Monoflow, Work Wiki, Monograph, the Monogram companion tools, Kernel CLI, and MonoSurf. When command-specific wrapper guidance is useful, run for example OPENCLIS_NEXT=1 openclis monogram search "session reconnect"; the wrapper adds a bounded next step after the native Monogram result. The public 0.98.6 release is built from source commit a8da2815b795afa61bc01504777cad250bccb6dd with source_dirty: false on every artifact. Its required stable matrix contains five platform artifacts; the rows below were recorded only after direct download and hash verification: The OpenCLIs-managed macOS payload has SHA-256 58e074c557899868a72c45d2d3344f7db6e11b7c86dbd4801bc4c0af803515ba. It reported 0.98.6, passed strict signature verification, exposed 50 MCP schema commands, reproduced all three task-entry states in an isolated scratch project, and verified all 351 embedded Book files plus all seven initiate-tree files. The public registry flow and bundled guide tree remain pinned to the same 0.98.6 release commit; compare them with the source-ahead boundary above rather than the current working tree. The extracted Linux x86_64 payload has SHA-256 c2b00b0d63fbba823526675662ea96b86e8b98db7d9b9d2979d4ab47bc2b2b8f; it was executed in Ubuntu 24.04 WSL and its guide tree matched release source. The extracted Linux AArch64 payload has SHA-256 aad8c816ea1d99eaf3b6dfd9d80521b27686a876e8badb0444d0aac914068a3c. It was confirmed as an AArch64 ELF and was not executed on the x86_64 host. The Windows x86_64 payload has SHA-256 56a573606b174069179ae53888c40390faae20bfd2a15602157287c775627a4d. It reported 0.98.6 on Windows, passed the 351-Book and seven-file embedded verification, exposed 50 MCP commands, and produced docs initiate and docs skill content byte-equivalent to source after CRLF normalization. The Windows AArch64 payload has SHA-256 e0e3aec3150f63a100d5a48c312905ff89f33acc91c92a7a7c8836d8df08902e. It was confirmed as an AArch64 PE console executable and its seven guide files matched the same source after CRLF normalization; it was not executed on the x86_64 verification host. Intel macOS is not part of the stable five-platform matrix. Check cdn.openclis.com/monogram/latest.json and its referenced meta.json rather than inferring platform support from the Rust source.

Relationship to the Monolex tools

Keeping results fresh

index and -r are the everyday incremental paths. reindex is a full rebuild. Monogram prints index identity and freshness before queries; do not silently treat stale results as current evidence.

Where next