Skip to main content
Glama

Vicem — Diet the Context, Pass the Baton

Hit Claude Code's 5-hour quota mid-feature? Or watching Cursor / Codex slow to a crawl after 150k tokens of context rot?

Vicem compacts your active coding session by 80–99% (via deterministic AST code skeletonization + lossless MCP on-demand rehydration) and hands off a clean .vicem/BATON.md across Claude Code, Cursor, Codex CLI, Gemini CLI, Windsurf, Antigravity IDE, and Web AI in 3 seconds — with 0 npm dependencies and 0 network calls.

⭐ Tip: Click Star (top-right) to bookmark this repo for the next time your coding agent hits a 5-hour quota limit or context rot.


⚡ 10-Second Quick Start (npx — Zero Install)

1. Run the Local Handoff GUI or Pass a Baton Immediately

# Launch the local Handoff GUI (3-step guided handoff, preview confirmation & manual recovery)
npx -y vicem-cli gui

# Or pack a compressed baton from your current repo & hand off in 1 command
npx -y vicem-cli codex
npx -y vicem-cli claude
npx -y vicem-cli cursor

# Or auto-configure global `vicem` CLI + MCP servers across all installed agents
npx -y vicem-cli setup

2. Add as an Agent Skill & MCP Server in 1 Line (Claude Code / Codex / Cursor)

# Install the Agent Skill globally (Claude Code, Cursor, Codex, Antigravity, Windsurf)
npx skills add RAKKUNN/vicem -g

# Claude Code MCP Server
claude mcp add vicem -- npx -y vicem-cli mcp

# OpenAI Codex CLI MCP Server
codex mcp add vicem -- npx -y vicem-cli mcp

Add to ~/.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, or claude_desktop_config.json:

{
  "mcpServers": {
    "vicem": {
      "command": "npx",
      "args": ["-y", "vicem-cli", "mcp"]
    }
  }
}

Related MCP server: slimctx-token-optimizer

Visual Overview

  1. Review your work (01 · Source conversation): Select the active project and source conversation, and inspect or edit the extracted handoff goal.

  2. Choose a destination (02 · Choose a destination): Pick the target agent (Claude Code, OpenAI Codex, Cursor, Antigravity, Gemini CLI, Windsurf, VS Code, Web Chat) and delivery action (Open the app, Open in terminal, or Prepare handoff only).

  3. Review and hand off (03 · Review handoff): Inspect the exact .vicem/BATON.md summary before anything is written or launched. If automatic launch is unavailable, copy the saved BATON.md path, shell continuation command, and start prompt directly from the recovery panel.

$ npx -y vicem-cli codex

  ╭─ VICEM CONTEXT BATON & DIET RECEIPT ──────────────────────────────────╮
  │ Source Session : Claude Code (sess-9f3a2c · 42 turns harvested)       │
  │ Context Diet   : 184,200 tok ($2.76) ──► 14,800 tok ($0.22) [-91.9%]  │
  │ Code Skeletons : 18 files compressed (31 bodies indexed in ledger)    │
  │ Security Guard : 2 secrets redacted (OPENAI_KEY, AWS_ACCESS_KEY)      │
  │ Relay Target   : OpenAI Codex CLI (interactive TTY handoff ready)     │
  ╰───────────────────────────────────────────────────────────────────────╯
[OK] [Vicem] Baton written to .vicem/BATON.md (182ms). Launching codex...

How Lossless Code Skeletonization + MCP Rehydration Works

Instead of lossy LLM summarization that forgets exact type contracts, Vicem keeps all imports, types, and signatures 100% intact inside .vicem/BATON.md while collapsing unchanged function bodies >= 12 lines into .vicem/ledger.json:

// What the receiving agent sees in .vicem/BATON.md (-85% tokens, disk file untouched):
export interface JwtPayload { sub: string; exp: number; role: 'admin' | 'user'; }
export async function verifySessionToken(rawToken: string, secret: string): Promise<JwtPayload> { /* ... */ }

When the receiving agent actually needs to edit verifySessionToken, it calls the MCP tool vicem_rehydrate("src/auth.ts", "verifySessionToken") to pull back the exact raw lines on demand (with automatic git HEAD and live-file SHA-256 staleness detection).

Pipeline Stage

Before Vicem (Raw Session)

After Vicem Baton & Diet

Token Savings

1. Session Handoff

40+ turns of raw JSONL / SQLite history locked in one tool

Extracts Goal, Done, Immediate NEXT & git diff into .vicem/BATON.md

< 3s handoff across 12+ CLI, IDE & Web AI agents

2. Code Skeletonizer

Full source files with unchanged function bodies (~120,000 tok)

Signatures & types 100% intact; bodies indexed in .vicem/ledger.json

-80% to -90% code tokens (lossless via vicem_rehydrate)

3. Test & Log Slimmer

Verbose ANSI spinners & node_modules stack frames (~45,000 tok)

Failing assertion + top 5 user-code stack frames (~1,200 tok)

-95% log noise

4. Data & Noise Gate

Lockfiles, build bundles, and huge JSON / CSV / SQL dumps

Lockfiles dropped; data files reduced to inferred schema + 2 sample rows

-98% data bloat

5. Safety & Secret Guard

Plaintext .env keys in logs & risk of placeholder overwrites

Local secret redaction + SkeletonWriteGuard pre-commit protection

0 leaked secrets & 0 npm dependencies


Direct CLI Commands & Offline Source Setup

# 1. Launch the interactive Desktop Utility GUI
vicem gui

# 2. Compact current bloated session in-place (Context Rot Rescue)
vicem self

# 3. Pass baton to any CLI, IDE, or Web AI target
vicem codex | vicem claude | vicem gemini | vicem cursor | vicem windsurf | vicem vscode | vicem web

# 4. Return baton to previous agent & auto-unmount temporary rules
vicem back

# 5. Extract & smart-patch code blocks from a Web AI clipboard reply
vicem land

# 6. Run <50ms environment & agent storage diagnostics
vicem doctor
git clone https://github.com/RAKKUNN/vicem.git && cd vicem
./vicem.mjs setup   # or double-click setup.command (macOS/Linux) / setup.bat (Windows)

For browser-only air-gapped environments without Node.js, open index.html directly in Chrome, Edge, Brave, or Safari (enforced by connect-src 'none' CSP).


Supply-Chain Verification & Minimal TCB

Verify zero third-party dependencies and cryptographic artifact integrity in one command:

# 1. Confirm zero npm dependencies
node -e "console.log(JSON.parse(fs.readFileSync('package.json')).dependencies ?? '0 dependencies')"

# 2. Verify SHA-256 checksums of all core artifacts
shasum -a 256 -c SHA256SUMS

# 3. Run the 769-test automated suite
node --test test/*.test.mjs

Reviewed handoffs and safe recovery

Start the local interface with node vicem.mjs gui. Select the project and source conversation, edit the goal, choose the destination and launch mode, then review before delivery. Technical telemetry is available under details.

  • node vicem.mjs codex --preview: preview without saving handoff artifacts or launching an app.

  • node vicem.mjs codex --preview --json: structured preview for automation.

  • node vicem.mjs status --json / node vicem.mjs history --json: inspect recorded outcomes.

  • node vicem.mjs undo <handoff-id>: restore instruction changes for that handoff only. If those instructions have since changed, recovery refuses to overwrite them. This does not undo agent edits to source code.

The GUI rejects a reviewed handoff if its content changes before delivery. Delivery and application launch do not establish that an agent has read the context: reception remains unconfirmed. The preview token is a consistency check, not authentication. Legacy --dry-run still writes handoff artifacts; use --preview for a read-only preview.

Validation: automated unit/integration tests and local macOS browser checks. Windows/Linux real-agent launch and actual target-agent reception are not certified by these tests. GUI and CLI share preparation, rule mounting, outcome history and instruction recovery; platform launch adapters remain distinct.

See compatibility verification for tested operating systems, actual agent read proofs, and limitations.

Automatic launch and manual continuation

Windows CLI/package behavior is verified in native CI on Node 22 and 24. Windows desktop integration remains Preview; desktop auto-launch on every OS is best effort. View the passing CI run and the precise support scope.

If automatic launch fails, the handoff stays saved. The GUI provides Copy command, Copy start prompt, and the saved file path. Open the destination manually, select your project, and paste the start prompt. CLI failures provide the same guide. Successful delivery does not confirm that an agent read it.

Available Tools

4 tools
vicem_check_guardA
Read-onlyIdempotent

Verifies a code snippet or git diff against three safety checks: (1) SkeletonWriteGuard (blocks "{ ... }", "/* ... */", "⋮", or stub "pass" placeholders written into code files), (2) SecretCommitGuard (blocks raw API keys/credentials, leaked "‹REDACTED:...›" tokens, and baton markers), and (3) StalenessDriftGuard (flags git HEAD drift from .vicem/baton.json). Use before committing or finalizing edits to skeletonized files; do not use to read baton state (vicem_read_baton) or restore elided code (vicem_rehydrate). Parameter semantics: pass diff_text to inspect a specific unified diff or code snippet; omitting diff_text falls back to inspecting staged and unstaged working tree changes (git diff HEAD). Non-mutating read-only check (no auth, rate limits, or file overwrites): returns "OK: All 3 Safety Guards passed." (isError=false) when clean, or isError=true with per-violation findings and self-healing remediation prompts when a guard trips.

NameRequiredDescriptionDefault
diff_textNoOptional unified git diff or raw code snippet to validate. When omitted, defaults to inspecting live working tree and staged changes against HEAD (git diff HEAD).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, but the description goes further: it confirms no auth, no rate limits, no file overwrites, and describes both return paths (OK string with isError=false, versus isError=true with per-violation findings and remediation prompts). That is materially beyond what the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the guard names and trigger patterns, then usage rules, then parameter and return behavior in a logical order. It is dense but every clause carries signal; only the triple enumeration of guard internals makes it longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, non-mutating check with no output schema, the description covers invocation fallback, success/failure semantics, and remediation behavior. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one optional parameter and 100% schema description coverage, the baseline is 3. The description explains diff_text versus the fallback to git diff HEAD, but the schema already documents that same fallback almost verbatim, so it adds little beyond structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Verifies) and resource (code snippet or git diff) and enumerates all three named checks with their trigger conditions. It explicitly distinguishes itself from siblings vicem_read_baton and vicem_rehydrate, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('before committing or finalizing edits to skeletonized files') and when not to use, naming the two sibling alternatives and the condition that selects each. This is exactly the when/when-not/alternatives pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vicem_create_batonA
Idempotent

Creates a compressed U-Shaped Context Baton (.vicem/BATON.md) and symbol ledger (.vicem/ledger.json) from the current project session and git state. Use at session end or before quota limits to hand off work; do not use to read an existing baton (vicem_read_baton), restore a skeletonized function (vicem_rehydrate), or validate edits (vicem_check_guard). Compresses context by skeletonizing unchanged functions >=12 lines into .vicem/ledger.json while keeping signatures intact. Idempotently overwrites .vicem/BATON.md, .vicem/baton.json, and .vicem/ledger.json after saving a rollback snapshot in .vicem/snapshots/, with secret redaction and zero source file mutations (no auth or rate limits). Parameter semantics: goal overrides auto-extracted session intent in Section 1; targetAgent tailors receiver rules (default "codex"); budgetTokens (500-128000, default 4000) controls skeletonization depth. Returns the generated Markdown baton (isError=false).

NameRequiredDescriptionDefault
goalNoOptional explicit engineering goal override for Section 1 (e.g., "Fix JWT refresh race in src/auth.ts"). If omitted, inferred from active session history and git diff.
targetAgentNoDestination AI coding agent identifier used to format receiver instructions (default: "codex").codex
budgetTokensNoMaximum token budget governing how aggressively Tier 3/4 context files are skeletonized (default: 4000, range: 500-128000).

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: names exactly which files are overwritten (.vicem/BATON.md, baton.json, ledger.json), that overwrite is idempotent, that a rollback snapshot is written to .vicem/snapshots/ first, that secrets are redacted, and that no source files are mutated. It also states there are no auth or rate limits, which is real operational context. This is consistent with destructiveHint=false and idempotentHint=true — no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the sentences are dense with useful detail rather than filler. It is long, and the closing note about return value and isError=false adds little for a tool with no output schema, slightly diluting the close.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Only three optional parameters and no output schema, yet the description covers the return value, the destructive-safety story, secret handling, and the meaning of every parameter. An agent has everything needed to invoke it correctly without opening anything else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description earns above that by explaining effect: goal overrides auto-extracted session intent specifically in Section 1, targetAgent tailors receiver instructions (default codex), and budgetTokens governs skeletonization depth. That causal detail is not in the schema descriptions, though the Tier 3/4 terminology is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource pair: 'Creates a compressed U-Shaped Context Baton (.vicem/BATON.md) and symbol ledger (.vicem/ledger.json) from the current project session and git state.' The scope (session + git state) and artifacts are named concretely, and it explicitly differentiates itself from vicem_read_baton, vicem_rehydrate and vicem_check_guard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('at session end or before quota limits to hand off work') and an explicit exclusion list mapping each negative case to the correct sibling tool. Nothing is left to inference about when to pick this tool over the three alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vicem_read_batonA
Read-onlyIdempotent

Reads the current .vicem/BATON.md handoff document and checks whether git HEAD has drifted from .vicem/baton.json. Use first when starting a handed-off session to inspect the goal, next steps, and Section 6 Diet Ledger index; do not use to create a baton (vicem_create_baton), restore an individual function body (vicem_rehydrate), or validate code diffs (vicem_check_guard). Read-only local operation (no auth, rate limits, or file mutations). Returns the full BATON.md text with isError=false; if git HEAD moved ahead of the baton commit, the call still succeeds and prepends a "> ⚠️ [STALENESS DRIFT WARNING]" banner with both commit hashes so you can check git diff before editing. Returns isError=true if .vicem/BATON.md does not exist.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and non-destructive annotations, it discloses that the operation is local with no auth, rate limits, or file mutations. It also explains the return behavior: full BATON.md text with isError=false, a staleness drift warning banner with both commit hashes when git HEAD has moved, and isError=true when the file is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and usage condition, then adds exclusions and behavioral details in a compact sequence. Despite covering several important behaviors, every sentence contributes necessary selection or invocation information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description fully explains return values, error behavior, and the drift warning. Together with annotations covering safety and locality, it gives an agent everything needed to invoke and interpret the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to clarify; the baseline for zero parameters is 4. The description does not need to compensate for any parameter documentation gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs and resources: it reads the current .vicem/BATON.md handoff document and checks git HEAD drift against .vicem/baton.json. It also distinguishes itself from the sibling tools vicem_create_baton, vicem_rehydrate, and vicem_check_guard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this first when starting a handed-off session and lists what not to use it for, naming the alternative tool for each excluded action. This leaves no ambiguity about when to select this tool versus its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vicem_rehydrateA
Read-onlyIdempotent

Restores the exact, secret-redacted source code of a skeletonized function, method, or class from .vicem/ledger.json so you never write { ... } placeholders. Use after vicem_read_baton whenever you need to inspect or edit a symbol listed in .vicem/BATON.md Section 6 (Diet Ledger); do not use to read the full baton (vicem_read_baton), build a baton (vicem_create_baton), or check diff safety (vicem_check_guard). Parameter semantics: file_path (repo-relative POSIX path validated against path traversal) and symbol_name must match a ledger entry (camelCase filePath/symbolName aliases also accepted). Read-only lookup (no auth, rate limits, or disk writes): returns the redacted source code (isError=false), prepending a "// ⚠️ [STALENESS DRIFT WARNING]" comment if git HEAD or the on-disk file changed since snapshot. If the symbol is missing or was not skeletonized, returns isError=true with a not-found message so you can read the file directly.

NameRequiredDescriptionDefault
file_pathYesRepository-relative POSIX file path as listed in .vicem/BATON.md Section 6 (e.g., "src/auth.ts" or "vicem.mjs").
symbol_nameYesExact function, method, or class name to restore from .vicem/ledger.json (e.g., "verifyJwt" or "parseCFamily").

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantial context beyond them: no auth, rate limits, or disk writes; returns redacted source; prepends a STALENESS DRIFT WARNING when git HEAD or the file changed; and returns isError=true with a not-found message when the symbol is absent or not skeletonized.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and alternative routing before a labeled 'Parameter semantics' block. It is dense but every clause carries information; length is justified by the amount of behavioral detail packed in, though it borders on over-packed for a single paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description fully covers return values, success/error signaling, and staleness handling, so an agent knows exactly what to expect. Nothing needed for correct invocation or result interpretation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameter baselines are already met, but the description adds value by noting path-traversal validation on file_path, the requirement that symbol_name match a ledger entry, and acceptance of camelCase filePath/symbolName aliases. This is meaningfully more than the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Restores the exact, secret-redacted source code of a skeletonized function, method, or class from .vicem/ledger.json.' It names the exact artifact and the source of truth, making it immediately distinguishable from siblings like vicem_read_baton or vicem_check_guard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('after vicem_read_baton whenever you need to inspect or edit a symbol listed in Section 6') and lists three concrete do-not-use cases mapping to each sibling. Routing is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.1.6
    • Changedvicem_check_guard2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / diff_text / description
        Previous value: -"Optional diff or code text to inspect"New value: +"Optional unified git diff or raw code snippet to validate. When omitted, defaults to inspecting live working tree and staged changes against HEAD (git diff HEAD)."
    • Changedvicem_create_baton9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / budgetTokens / default
        Added value: +4000
      • changedInput schema / properties / budgetTokens / description
        Previous value: -"Token budget (default: 4000)"New value: +"Maximum token budget governing how aggressively Tier 3/4 context files are skeletonized (default: 4000, range: 500-128000)."
      • addedInput schema / properties / budgetTokens / maximum
        Added value: +128000
      • addedInput schema / properties / budgetTokens / minimum
        Added value: +500
      • changedInput schema / properties / goal / description
        Previous value: -"Primary engineering goal"New value: +"Optional explicit engineering goal override for Section 1 (e.g., \"Fix JWT refresh race in src/auth.ts\"). If omitted, inferred from active session history and git diff."
      • addedInput schema / properties / targetAgent / default
        Added value: +"codex"
      • changedInput schema / properties / targetAgent / description
        Previous value: -"Target agent identifier (e.g., codex, claude, ide)"New value: +"Destination AI coding agent identifier used to format receiver instructions (default: \"codex\")."
      • addedInput schema / properties / targetAgent / enum
        Added value: +[
        +  "claude",
        +  "codex",
        +  "cursor",
        +  "antigravity",
        +  "gemini",
        +  "windsurf",
        +  "vscode",
        +  "web",
        +  "ide"
        +]
    • Changedvicem_read_baton1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvicem_rehydrate3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / file_path / description
        Previous value: -"Relative file path (e.g. src/auth.ts)"New value: +"Repository-relative POSIX file path as listed in .vicem/BATON.md Section 6 (e.g., \"src/auth.ts\" or \"vicem.mjs\")."
      • changedInput schema / properties / symbol_name / description
        Previous value: -"Function, method, or class name (e.g. verifyJwt)"New value: +"Exact function, method, or class name to restore from .vicem/ledger.json (e.g., \"verifyJwt\" or \"parseCFamily\")."
  2. 4 tool updatesv1.0.0
    • First observedvicem_check_guard
    • First observedvicem_create_baton
    • First observedvicem_read_baton
    • First observedvicem_rehydrate

TDQS

A4.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct phase of the baton lifecycle (read handoff, create handoff, restore a skeletonized symbol, validate a diff), and every description explicitly names the sibling tools it should not be confused with. The 'do not use X (vicem_y)' cross-references leave essentially no room for misselection, even for rehydrate vs. read_baton, which are the closest pair.

Naming Consistency5/5

All four tools use the same vicem_ prefix followed by verb_noun or a single clear verb (read_baton, create_baton, rehydrate, check_guard) in consistent snake_case. The pattern is predictable and readable across the set.

Tool Count5/5

Four tools is a tight, well-scoped surface for a context-handoff server: one per core operation (inspect, generate, restore, guard). Nothing feels padded and no operation is split across redundant tools.

Completeness4/5

The read/create/restore/validate loop covers the stated handoff workflow end to end, and read/create both return drift signals. However, vicem_create_baton saves rollback snapshots in .vicem/snapshots/ yet there is no tool to list or restore them, and no way to clear or delete an existing baton — minor lifecycle gaps an agent must work around outside the server.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local-first MCP server that watches your coding sessions and injects a compact summary at the start of each new session. 85.6% token reduction, SQLite storage, no cloud. Works with Claude Code, Cursor, Cline, and Windsurf.
    15
    278 npm
    9
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides reversible context compression for AI agents, reducing token usage while preserving the ability to retrieve original content, and serves as an MCP server for integration with tools like GitHub Copilot and Claude Code.
    3
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A task-aware context compression layer for Agent workflows, RAG pipelines, and AI Coding assistants, reducing noisy logs, retrieval chunks, and code context into high-signal LLM inputs via CLI, Python SDK, and MCP.
    325
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents and MCP-compliant clients to dynamically shrink long-horizon context windows, pruning verbose tool outputs, HTML boilerplate, and semantic redundancy by roughly 40-70% without frontier LLM round-trips. Runs deterministically as a zero-dependency Python stdio server, accepting a payload plus optional compression and risk-bound options.
    7
    -