myc Local Agent Memory
A local task, durable-memory, and code-intelligence layer for coding agents.
- Source repo
- aistastudio/myc
- Stars
- ★ 14
- Last updated
- 21d ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 75/100 · Good
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- 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.
- Not a fit if
- Teams needing a server, ACLs, or team mode
- Users who must run natively on Windows cmd or PowerShell
- Developers who require plain Node.js or Deno instead of Bun
- Source review
- 75/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.
- A Claude Code user whose sessions undergo context compaction can preserve the raw episode and inject a recovery packet into the surviving context.
- A developer moving between Claude Code, Codex, opencode, or Kimi can connect those clients to one project-level MCP task graph and memory store.
- A solo developer running multiple agents or neighboring repositories can serialize full test suites and builds with
myc runto reduce resource contention. - An agent navigating a TypeScript, JavaScript, or Python repository can query definitions, callers, directory hubs, and semantic code matches before reading whole files.
- A beads user can preview and import an existing task graph, then synchronize later changes while retaining comments, memories, dependencies, and supported metadata.
- 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?
- 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
WARNmessages, and--strictcan 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.
- 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 | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| myc Local Agent Memory This agent | 75 · Good | CLIFree | ★ 14 | 21d ago | TypeScript | Codex · Claude Code |
| Guild | 62 · Some gaps | CLIFree | ★ 297 | 29d ago | Go | Codex · Claude Code |
| funes Agent Memory | 81 · Good | CLIFree | ★ 589 | 2d ago | Rust | Codex · Claude Code |
| Graphicle | 84 · Good | CLIFree + model costs | ★ 523 | today | Rust | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
The README describes local-first operation, explicitly optional network commands, environment forwarding, no mandatory LLM key, review before candidate memories become searchable, and exclusion of credential-named files from indexing. Wiring offers dry-run, backups, and unwire. Deductions: run executes arbitrary supplied commands, some hooks act automatically, and the sample does not include full implementations for the documented protections and recovery behavior; publisher identity is unknown and source attribution is limited.
The CLI provides structured errors and hints; the README documents SQLite floors, degraded-mode warnings, and doctor diagnostics. CI config includes PostgreSQL, type checking, tests, builds, and dependency checks. Deductions: several reliability claims are self-reported, CI uses an unpinned latest Bun, and the sample cannot independently verify every implementation.
The task, memory, and code-index workflow is tailored to coding agents and documents integrations with Claude Code, Codex, opencode, and others. It distinguishes built-in and optional implementation capabilities. Deductions: scenarios focus on coding agents, native Windows support is marked experimental, and some language and feature coverage depends on available indexes or grammars.
The README includes installation, quick start, command-help pointers, migration examples, and substantial limitation notes; the license is explicitly MIT. Deductions: documentation is extensive and the supplied README excerpt is truncated; versioned fixes are described but a complete changelog is not included; maintainer and update responsibility are unclear.
Task queues, persistent memory, retrieval, and code indexing address context loss and repeated exploration for coding agents; CLI output and examples are usable. Deductions: much of the performance and benefit evidence is repository-authored, while model and grammar downloads and Bun/Node/SQLite requirements add adoption costs.
The README links some measurements to scripts, artifacts, and dates; CI describes build and review steps; source samples show CLI error handling and code-intelligence interfaces. Deductions: cited design docs, tests, and complete implementations are not in the packet, and the claimed site consistency checks are not shown here, so several product claims cannot be cross-checked from the supplied materials.
- The native Windows binary is still experimental; the documentation identifies WSL as the fully supported path.
- myc run executes the supplied command. Review commands wrapped by the queue hook and the local agent permission rules.
- Embedding and grammar packages require explicit downloads, and SQLite has a version floor. This assessment did not execute code or independently verify the documented measurements.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
v0.6.7 0.6.7
Release notes excerpt
Ретеншн, четвёртый срез: свёртка эпизодов L0 и retention.l0_days. Что сделано myc compact --episodes (retention/4, design01 §6.4(3)). Тело эпизода L0 живёт в файле .myc/episodes/<id>.zst (D22 — сырые транскрипты приватны и вне git), а не в узле. Свёртка: дайджест-note слоя 1 с attrs.episode_of и ребром derived_from; файл уезжает в bodies_cold (zstd) — с этого момента тело стареет вместе с ним, и prune добивает через 180 суток; атрибуты узла помечают архивацию. myc uncompact <id> возвращает тело байт-в-байт. Условие — наличие файла, поэтому свёрнутый не сворачивается повт …View on GitHub ↗ -
v0.6.6 0.6.6
Release notes excerpt
Ретеншн, третий срез: myc purge — жёсткое стирание, которое доезжает до пиров. Что сделано myc purge (retention/3, design01 §6.5). Две формы: --id X [--cascade] — один узел (живые рёбра стираются каскадом и требуют --cascade); --scope X --before T --yes — массово по scope и дате рождения (ISO или возраст вроде 90d), с обязательным подтверждением. В отличие от мягкого удаления (deleted_at, обратимо) purge физически удаляет узел, рёбра, вектор, FTS-строку, bodies_cold, замыкание и CRDT-таблицы — и кладёт op='purge' в оплог, так что пиры стирают у себя. Повтор идемпотентен: соб …View on GitHub ↗ -
v0.6.5 0.6.5
Release notes excerpt
Ретеншн, первые два среза: локальная чистка prune и обратимое компактирование. Что сделано myc prune (retention/1, design01 §6.5): два удаления по возрасту, ни одно не трогает граф. Холодные тела (bodies_cold) старше 180 суток; оплог старше 30 суток — только при подтверждении ВСЕМИ известными пирами (sync_state.last_seq_sent каждого ≥ seq); без единого пира оплог не трогается, и причина называется в выводе. VACUUM при фрагментации > 25 %. --dry-run. Операcия локальная — в оплог ничего не пишется. …View on GitHub ↗
FAQ
Does routine use require internet access or an LLM API key?
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?
WARN degraded.embeddings on each answer. With --strict, that degraded result also exits with code 6.Will myc wire overwrite existing agent configuration?
.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?
Can credential files enter the code index?
.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.Thanks — we use this to improve the page.