myc Local Agent Memory

A local task, durable-memory, and code-intelligence layer for coding agents.

Source repo
aistastudio/myc
Stars
★ 13
Last updated
4d ago
License
MIT
Primary language
TypeScript

At a glance

Works with
Universal · cross-platformCodex · Claude Code
You'll need
Bun >= 1.3.0SQLite >= 3.44.0GitmacOS or Linux; WSL on WindowsShell / CLILocal filesystemMCP Server
Typical use
A Claude Code user whose sessions undergo context compaction can preserve the raw episode and inject a recovery packet into the surviving context.
Main limitation
The runtime is tied to Bun and bun:sqlite; it cannot run under plain Node.js or Deno, and older SQLite versions cause refusal or concurrency warnings.
Source review
87/100 · Good

What does this agent do, and when should you use it?

myc is a local task-and-memory layer that keeps a task queue, an oplog of facts and decisions, hybrid retrieval, and a code index inside a project workspace. It exposes a CLI, an MCP server, and agent hooks for Claude Code, Codex, opencode, and Kimi, with additional Claude Code support for pre-compaction capture, a status line, and heavy-command queuing. SQLite stores the working data, while cross-machine transfer commits only the oplog to Git rather than databases or caches. Its on-demand tree-sitter code intelligence provides symbols, callers, and semantic search for TypeScript, TSX, JavaScript, and Python; other files still support literal search, anchors, and staleness tracking. Core operation requires no LLM key and makes no network calls unless the user requests model or grammar downloads or a version check. It is currently a single-user local tool, not a server-backed team system with ACLs, network sync, or PostgreSQL.

After myc init creates .myc/, SQLite storage, and migrations, myc wire writes or merges MCP, hook, and skill configuration for selected coding agents. An agent can claim work with myc ready --claim, inspect it through myc show, finish it with myc close, and record facts or decisions using myc remember. myc recall performs lexical retrieval and adds vector retrieval after an embedding model is explicitly downloaded; myc prime produces a context packet limited to the current session. myc code fetch downloads SHA-256-checked grammars needed by the repository, and myc code index builds an incremental index consumed by myc code symbol, myc callers, myc code search, myc code grep, myc code map, and myc skeleton. A pre-compaction hook saves the raw session episode before attempting distillation and records extracted decisions as pending-review candidates that remain hidden from retrieval until confirmed. myc run -- <command> places full tests, builds, and similar heavy commands in a machine-user-wide queue, while myc export and myc import exchange the oplog through Git.

  1. A Claude Code user whose sessions undergo context compaction can preserve the raw episode and inject a recovery packet into the surviving context.
  2. A developer moving between Claude Code, Codex, opencode, or Kimi can connect those clients to one project-level MCP task graph and memory store.
  3. A solo developer running multiple agents or neighboring repositories can serialize full test suites and builds with myc run to reduce resource contention.
  4. An agent navigating a TypeScript, JavaScript, or Python repository can query definitions, callers, directory hubs, and semantic code matches before reading whole files.
  5. A beads user can preview and import an existing task graph, then synchronize later changes while retaining comments, memories, dependencies, and supported metadata.
  6. An individual working across machines can commit the oplog to Git and reconstruct local state after cloning without operating a central service.

How do you install or deploy this agent?

Install Bun 1.3.0 or newer and ensure SQLite 3.44.0 or newer is available. Supported environments are macOS and Linux; on Windows, install and run both Bun and myc inside WSL. Install the package with bun install -g @aistastudio/myc, then verify it with myc --version. Installation does not download an embedding model or code grammars: run myc models fetch when semantic retrieval is wanted and myc code fetch before building a language-aware code index. To build from source, run git clone https://github.com/aistastudio/myc && cd myc, followed by bun install, bun run build, and ./dist/myc --version.

How do you use this agent?

From the target Git repository, run myc init, followed by myc wire to configure hooks and MCP for Claude Code, Codex, opencode, and Kimi; use myc wire --agents claude,codex to select only some clients. A minimal work loop is myc ready --claim, myc show <id>, and myc close <id>. Store a rationale with myc remember "why X, not Y", retrieve it with myc recall "how retrieval works", and generate session context with myc prime. For code intelligence, run myc code fetch once and then myc code index; use myc doctor to inspect SQLite, schema, counters, and hook health. Before changing integration files, myc wire --dry-run shows the proposed edits. The Claude Code status line and heavy-command rewrite hook are separate opt-ins enabled with --status-line and --queue-hook.

What are this agent's strengths and limitations?

Pros
  • Core operation is local and does not require an LLM API key; lexical BM25 retrieval remains available before any embedding model is installed.
  • One CLI combines task tracking, durable memory, session scoping, code intelligence, MCP integration, and machine-wide heavy-command scheduling.
  • Degraded behavior is explicit through WARN messages, and --strict can turn degradation into exit code 6 instead of silently reporting success.
  • Git synchronization commits only the oplog and merges concurrent edits per field rather than applying whole-record last-writer-wins updates.
  • Nested repositories and Git worktrees have documented behavior, including shared indexing, repository-relative answers, and divergence warnings.
  • The repository reports reproducible latency, ranking, and test measurements and identifies where absolute performance budgets are or are not calibrated.
Limitations
  • The runtime is tied to Bun and bun:sqlite; it cannot run under plain Node.js or Deno, and older SQLite versions cause refusal or concurrency warnings.
  • Native operation is limited to macOS and Linux, while Windows requires WSL and cannot use the launcher from cmd or PowerShell.
  • Semantic retrieval requires an additional embedding-model download of about 129 MB, and code intelligence requires network-fetched grammars.
  • Language-aware symbols and callers currently cover only TypeScript, TSX, JavaScript, and Python; other languages receive only grep, anchors, and staleness support.
  • There is no implemented server, ACL, team mode, network synchronization service, or PostgreSQL backend.
  • When a worktree diverges from the main checkout, indexed spans and skeletons may describe the main copy rather than the active branch, even though myc emits a warning.

How does this agent compare with similar options?

Compared with beads, myc is more than an importer: it supplies its own task graph, memory, retrieval, and agent-integration layer. myc import-beads --dry-run previews a migration, while the full importer can carry tasks, dependencies, comments, memories, and supported metadata and later operate as a sync. It reports one-sided edits and two-sided conflicts instead of silently overwriting local changes. Its ready queue also models blockers inherited through parent tasks, correcting an earlier mismatch with beads. Adoption from beads still depends on a usable bd export --include-memories snapshot, and conflicting edits can require manual resolution.

Key facts side by side with the most closely related agents.

Agent Source review Stars Updated Language Full support on
myc Local Agent Memory This agent 87 · Good ★ 13 4d ago TypeScript Codex · Claude Code
Aura Code Audit Trail 70 · Some gaps ★ 47 5d ago Rust Codex · Claude Code
Caura 70 · Some gaps ★ 533 today Python Codex · Claude Code · Claude.ai
Magic Context 54 · Major gaps ★ 2.2k today TypeScript

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Good
87/ 100 5-point scale 4.4 / 5
Trust 24/29
Reliability 12/14
Adaptability 16/18
Convention 14/18
Effectiveness 13/13
Verifiability 8/8
Why each dimension lost points
Trust24 / 29 · 4.1/5

The evidence describes local-by-default operation, with network access limited to named commands or an optional update check. Model and grammar downloads, queue hooks, status-line integration, and user-scope wiring are opt-in. Wiring offers dry-run behavior, node-level merging, adjacent backups, and unwire support; myc run is explicitly prevented from bypassing host permission rules, and secret-named files are excluded from indexing. Deductions apply because private session records and masking are described without at-rest encryption, retention, deletion, or masking-coverage details, and not every local write requires per-operation confirmation. Dependencies receive hash checks, a deps-check job, and controlled SQLite builds, but no lockfile or audit output is supplied. MIT attribution is clear, while publisher identity remains unverified and third-party attribution is not comprehensively shown.

Reliability12 / 14 · 4.3/5

The README, package metadata, and workflows are largely consistent about Bun, SQLite, builds, tests, and the benchmark methodology. They distinguish enforced relative checks from absolute figures on uncalibrated hardware. Concrete refusals and warnings cover unsupported SQLite, missing models or grammars, queue timeouts, absent binaries, degraded search, and divergent worktrees. Dependency availability loses a point because operation is tightly bound to Bun and specific SQLite capabilities, semantic models and grammars require later network access, and CI selects latest Bun, leaving long-term reproducibility dependent on external availability and compatibility.

Adaptability16 / 18 · 4.4/5

The material addresses single- and multi-agent use, nested repositories, git worktrees, migrations, offline lexical search, code indexing, and several agent hosts. It clearly states supported capabilities, scopes, languages, and triggering conditions. Heavy-command hooks have specific matches, exclusions, and overrides. Environment fit is reduced because native support is limited to macOS and Linux, Windows requires WSL, plain Node.js and Deno are unsupported, and structured symbol extraction is limited to TypeScript, JavaScript, and Python.

Convention14 / 18 · 3.9/5

The README supplies structured installation guidance, a quick start, extensive examples, design-document pointers, help commands, and prominent limitations. The full MIT license agrees with package metadata. Deductions apply because there is no distinct FAQ; version presentation is split between 0.0.0 in the root package and 0.3.14 in the README without an explanation in the supplied files. Release history appears in narrative examples rather than a complete changelog. Maintenance ownership is only inferable from the aistastudio copyright, repository name, and an issue reference; no named maintainer, support policy, response commitment, or security-reporting path is provided.

Effectiveness13 / 13 · 5.0/5

Outputs are designed to be actionable: warnings identify degraded operation, missing components, queue holders, stale indexes, or worktree divergence and commonly provide a corrective command. Combining tasks, durable memory, candidate-decision review, code intelligence, and a machine-wide heavy-work queue provides clear marginal value. Costs are explicitly managed through local defaults, optional downloads, incremental indexing, background refresh, package-size disclosure, and latency budgets. No specific static-source weakness warrants a deduction on these criteria.

Verifiability8 / 8 · 5.0/5

Most performance and ranking claims name dates, scripts, corpora, or test paths and explicitly disclose figures that were not remeasured, hardware that is uncalibrated, and checks not enforced in shared CI. Package metadata and both workflows corroborate major README claims, while nightly artifacts preserve measurement output. Measurements, historical defects, present behavior, and methodological limitations are separated unusually clearly. These scores reflect source traceability only; no scripts or results were executed or independently validated.

Risks and how to mitigate them
  • This assessment uses only the supplied static files; builds, tests, benchmarks, installation, wiring, and rollback were not executed.
  • Session records, project memory, and the user-level queue database are written to local storage, while at-rest encryption, automatic expiry, secure erasure, and a complete data-deletion procedure are not documented.
  • myc wire --scope user modifies user-level Claude Code or opencode configuration and installs hooks, plugins, and MCP entries; review --dry-run output and validate backup and unwire behavior against local policy first.
  • Semantic models, tree-sitter grammars, and update checks can access the network; organizations should review download origins, the hash catalog, and applicable network policy.
  • The root package version 0.0.0 differs from the README's 0.3.14 example; release and audit workflows should verify the actual distributed package version and corresponding commit.
  • The publisher is not verified by the FollowAgents enterprise registry, so maintenance identity, support commitments, and supply-chain reputation should not be inferred from the name alone.
Evidence confidence: Low Reviewed Sep 24, 2026 Reviewed revision 17f6209162ea
See the full review method →

FAQ

Does routine use require internet access or an LLM API key?
No. Tasks, memory, lexical retrieval, and indexing operate locally without a mandatory LLM key. Network access occurs only for myc models fetch, myc code fetch, explicit version checks, or the optional daily background update check.
What happens if the embedding model has not been downloaded?
Search continues with lexical retrieval and reports WARN degraded.embeddings on each answer. With --strict, that degraded result also exits with code 6.
Will myc wire overwrite existing agent configuration?
It writes its own files and merges JSON configuration node by node, keeping a .myc.bak; it never modifies CLAUDE.md. myc wire --dry-run previews changes, and myc unwire removes what myc installed.
Can it serve as a central shared-memory system for a team?
Not yet. The implemented product is a single-user local tool over files in Git. Server operation, ACLs, team mode, network sync, and PostgreSQL remain designed or planned rather than shipped.
Can credential files enter the code index?
Secret-named files such as .env, private keys, certificates, keystores, .npmrc, and .netrc are excluded, and code grep refuses to read them. Template files such as .env.example remain indexable.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents