by psinetron
Persistent memory plugin for OpenCode. Obsidian-style knowledge base that survives across sessions
# Add to your Claude Code skills
git clone https://github.com/psinetron/echoes-vault-opencodeGuides for using ai agents skills like echoes-vault-opencode.
Last scanned: 6/23/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-23T07:50:04.222Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how echoes-vault-opencode compares with popular alternatives.
echoes-vault-opencode is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by psinetron. Persistent memory plugin for OpenCode. Obsidian-style knowledge base that survives across sessions. It has 157 GitHub stars.
Yes. echoes-vault-opencode passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/psinetron/echoes-vault-opencode" and add it to your Claude Code skills directory (see the Installation section above).
echoes-vault-opencode is primarily written in Python. It is open-source under psinetron on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh echoes-vault-opencode against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
See comparison
EchoesVault stores architectural decisions, verified fixes, daily work notes, and other durable project knowledge as Markdown in the repository. Version 2 is a thin adapter for EchoesVault Protocol 1.0.0: OpenCode, Codex, Claude Code, and scripts all delegate writes to the same project-local runtime and share one knowledge base.
.echoes-vault/echoes_vault.py..echoes-vault/state.json; state is local and
disposable, while Markdown remains the source of truth.EchoesVault/index.md is generated from validated page metadata and
is never edited as authored knowledge.The complete implementer contract is in EchoesProtocol.md.
>= 1.16.0>= 3.9 available as python3If Python uses another executable name, set ECHOES_VAULT_PYTHON for the OpenCode process.
echoes-vault-opencode.{
"$schema": "https://opencode.ai/config.json",
"plugin": ["echoes-vault-opencode"]
}
Plugin installation is intentionally read-only for the current repository. Initialize or migrate only the repositories where memory is wanted:
/echoes-init
<repository>/
├── EchoesVault/
│ ├── .echoes-vault.json # tracked protocol marker
│ ├── AGENT_PROTOCOL.md # tracked compact agent guide
│ ├── index.md # ignored deterministic view
│ ├── pages/ # tracked curated knowledge
│ ├── daily/YYYY-MM-DD/ # tracked unique session entries
│ ├── assets/ # tracked referenced assets
│ └── raw/ # tracked source material
└── .echoes-vault/
├── echoes_vault.py # tracked shared writer
├── state.json # ignored local state
└── lock # ignored local lock
Knowledge pages require this frontmatter:
---
type: architecture
stack: [typescript, python]
status: active
summary: OpenCode delegates all EchoesVault mutations to the shared project runtime.
---
The summary must be a non-empty single line of at most 160 characters.
/echoes-init
This is the only normal entry point that creates or migrates the vault. It installs the portable runtime, upgrades recognized legacy OpenCode commands and skills, imports compatible local session state, validates page metadata, and rebuilds the generated index. Unknown user-owned adapter files are preserved and reported for manual reconciliation.
/echoes-start
Loads the generated index and the three newest daily entries. It does not load the entire vault.
/echoes-status
Reports protocol, runtime, storage, metadata, conflicts, Git readiness, and scale. Status is strictly read-only and never initializes, migrates, hydrates, or repairs files.
/echoes-end
Finalization is available only after this explicit user command. It writes one unique session summary and optional validated knowledge pages. Existing pages require a fresh SHA-256 obtained immediately before the update.
| Tool | Purpose |
|---|---|
echoes_activate_vault |
Explicit initialization or migration after /echoes-init |
echoes_start_session |
Restore index and recent entries after /echoes-start |
echoes_vault_status |
Read-only health card |
echoes_append_to_daily_log |
Write one unique intermediate daily entry |
echoes_search_vault_pages |
Targeted search across curated pages |
echoes_hash_vault_page |
Get the current hash required for a page replacement |
echoes_create_or_update_page |
Validated page creation or hash-protected replacement |
echoes_hydrate_vault |
Rebuild only ignored local index/state files |
commit_memory_to_echoes_vault |
Explicit final session distillation after /echoes-end |
Tools invoke Python as an argument array, send Markdown payloads over standard input, keep stdout and stderr separate, and propagate every non-zero runtime exit as a failed tool call.
Commit durable protocol files, the portable runtime, pages, daily entries, assets, raw material, and managed agent adapters. Do not commit:
EchoesVault/index.md
.echoes-vault/state.json
.echoes-vault/lock
.opencode/echoes-state.json
.codex/echoes-vault-state.json
After cloning, /echoes-start hydrates the ignored index/state and restores context. Codex and
OpenCode record their own lastWriter.agent and adapterVersion, but both use the same protocol,
runtime, pages, and daily history.
The local lock coordinates processes in one checkout. Git still handles edits made in different clones. Unique daily files normally merge independently; edits to the same curated page require ordinary semantic conflict resolution.
/echoes-status for a read-only preview. A legacy vault is reported as requiring migration./echoes-init explicitly.The migrator understands the old .opencode/echoes-state.json, flat daily logs, legacy index
descriptions, and recognized EchoesVault commands/skills. It never silently overwrites unknown
user-owned files.
Development tests require Node >= 22.6 for native TypeScript execution.
npm install
npm test
npm run pack:check
npm test type-checks the server adapter, TUI, and tests, then runs bridge-level lifecycle,
migration, write-safety, and runtime-integrity checks against the bundled reference runtime.
opencode plugin echoes-vault-opencode@X.X.X --force
Restart OpenCode after updating. A newer plugin may delegate to a newer compatible project runtime and will never downgrade it; project runtime changes happen only through explicit initialization or upgrade workflows.