opencode-notes
v0.1.0
Published
Per-session notes for OpenCode V2 with a /notes TUI editor and sidebar preview. Stored as plain Markdown and never injected into model context.
Maintainers
Readme
opencode-notes
Per-session notes for OpenCode V2, in the terminal.
Notes are plain Markdown, stored outside your repo, and never injected into model context — the agent cannot see them unless you paste them in. That is the point: a scratch space that costs zero tokens.
Why
Sessions end, context gets compacted, and the thing you meant to do next disappears with them. opencode-notes gives every session one private note that survives restarts and lives in the sidebar where you actually see it.
It is deliberately not a memory plugin: nothing is added to prompts, nothing is sent anywhere, no embeddings, no database. One Markdown file per session.
Install
opencode plugin add opencode-notesOr add it to ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"plugins": ["opencode-notes"]
}To pin a commit or branch instead of the published release:
opencode plugin add 'github:mmhlego/opencode-notes#main'Requires OpenCode V2. The plugin is TUI-only; the server part is an intentional no-op.
Usage
| Action | Key |
| --- | --- |
| /notes | open the editor for the current session |
| /notes <text> | append a line without opening the editor |
| Esc | save and close |
| <leader>e | edit in $VISUAL / $EDITOR |
| Enter | insert a newline |
The session sidebar shows a collapsible Notes section with a read-only preview (first 20 lines). When it is collapsed and the session has no note, the header reads No notes yet. Select text normally in the terminal to copy it.
Storage
~/.local/share/opencode/notes/<sessionID>.mdSet OPENCODE_DATA_DIR to change the base data directory, or pass a dataDir option:
{
"plugins": [{ "package": "opencode-notes", "options": { "dataDir": "/path/to/data" } }]
}One file per session. Delete a file to delete that session's notes; back up the directory to keep them. Nothing is written into your project or your git repo.
Development
bun install
bun run typecheckLoad the local checkout by pointing plugins at the directory:
{
"plugins": ["/absolute/path/to/opencode-notes"]
}License
MIT
