- Notifications
You must be signed in to change notification settings - Fork 1
Configuration
Threadnote reads all configuration from environment variables and stores local state under a single directory. Threadnote is local-first: machine state stays under THREADNOTE_HOME unless you explicitly publish a shared memory.
CLI flags (--home, --host, --port, --manifest) override the matching environment variable when present. Defaults below are the values used when neither a flag nor the variable is set.
| Variable | Default | Purpose |
|---|---|---|
THREADNOTE_HOME | ~/.openviking | Local state directory. All memories, config, logs, and caches live here. |
THREADNOTE_MANIFEST | ~/.openviking/seed-manifest.yaml if it exists, otherwise the bundled example manifest | Path to the seed manifest used by seed and seed-skills. |
THREADNOTE_ACCOUNT | local | OpenViking account header/config value. |
THREADNOTE_USER | local username | OpenViking user value, taken from the OS account name. |
THREADNOTE_AGENT_ID | threadnote | Shared agent identity; the namespace under viking://agent/<agent-id>/memories. |
THREADNOTE_OPENVIKING_VERSION | 0.3.24 | OpenViking package version the installer pins (openviking[local-embed]==<version>). |
THREADNOTE_NPM_REGISTRY | https://registry.npmjs.org/ | npm registry used by the installer and the update check. |
THREADNOTE_NO_UPDATE_CHECK | unset | When set, disables opportunistic npm update notifications. The check is also skipped in CI and when NO_UPDATE_NOTIFIER is set. |
THREADNOTE_BIN_DIR | ~/.local/bin | Directory where install writes the threadnote command shim. |
THREADNOTE_COPILOT_MCP_CONFIG | unset | Explicit VS Code / Copilot mcp.json path for mcp-install copilot, for custom profiles. |
THREADNOTE_HOST | 127.0.0.1 | Local bind host for openviking-server. |
THREADNOTE_PORT | 1933 | Local bind port for openviking-server. |
THREADNOTE_RUNTIME | auto | Runtime selector for the one-line installer (bun, deno, or unset for auto). Honored by scripts/install.sh, not the runtime config. |
THREADNOTE_AUTO_UPDATE | unset | When set to 1, the Claude SessionStart hook spawns threadnote update --yes in the background instead of printing the update banner. |
The server binds to 127.0.0.1:1933 by default. This does not conflict with projects serving localhost:80, localhost:443, or custom hostnames from /etc/hosts — those are different host and port bindings. A conflict only happens when another process already owns the same host and port.
If port 1933 is taken, pick a different port and keep it consistent across the server, the MCP configuration, and future invocations:
THREADNOTE_PORT=1934 threadnote start
THREADNOTE_PORT=1934 threadnote mcp-install codex --applyThe MCP adapter inherits the host and port from the same environment, so set THREADNOTE_PORT (and THREADNOTE_HOST if needed) anywhere both the server and your agent's MCP launch can see it.
Everything Threadnote writes lives under THREADNOTE_HOME (default ~/.openviking). The Markdown memory tree on disk is the source of truth; the semantic index is a regenerable vectordb.
~/.openviking/
├── ov.conf # OpenViking server config (passed via --config)
├── seed-manifest.yaml # local seed manifest (created by init-manifest)
├── seed-state.json # tracks what has been seeded
├── logs/
│ └── server.log # detached openviking-server output
├── data/ # OpenViking workspace; the viking:// memory tree
│ └── viking/<account>/... # plain-Markdown memories (source of truth)
├── share/
│ ├── teams.json # configured share teams
│ └── teams/<team>.gitdir # local git dir for each team's shared-memory repo
└── .update-state.json # cached npm update-check result
Notes:
ov.confis the OpenViking config file Threadnote generates; the server is started against it via--config. After editing it, restart withthreadnote stop && threadnote start.- Memories live under
data/, so deleting a branch or worktree does not delete stored memories. uninstallpreservesTHREADNOTE_HOMEby default; pass--erase-memoriesto delete it.- Some releases also track applied post-update memory migrations under
THREADNOTE_HOME(for examplepost-update-state.json).
See also: Installation, Troubleshooting, Architecture.
GitHub · npm · walkthrough deck · OpenViking · AGPL-3.0-or-later