notnessie

CLI reference

Everything NotNessie does is reachable through the notnessie command. This page documents every command and its key options, taken from the CLI source.

notnessie [command] [options]

Global flags:

Flag Description
-v, --version Print the installed version.
--help Show help. Also shown when a command is misused or run with no arguments.

!!! note “Most commands need the database” Commands that read or write memory need Postgres running. Start it with notnessie pgup, or override the connection with the DATABASE_URL environment variable. Read-only commands work before init by synthesizing a transient project keyed to the path.


notnessie init

Scaffold Claude Code integration and project memory config in a repository, then create the project’s database row and schema.

notnessie init [path]
Argument / option Description Default
[path] Repository root. .
-n, --name <name> Project name. the directory name
-f, --force Overwrite existing files. off
--no-migrate Skip the database schema migration. migrate on

Writes .mcp.json, .claude/settings.json, .claude/skills/notnessie/SKILL.md, and .notnessie/config.json, and merges a NotNessie block into CLAUDE.md. See Installation.


notnessie status

Check the database connection, the pgvector extension, the schema, embeddings, and the Claude Code wiring, with per-type memory counts.

notnessie status [path]
Argument Description Default
[path] Repository root. .

notnessie pgup

Start NotNessie’s managed Postgres (pgvector). Reuses an existing notnessie-postgres container if one is present; otherwise creates one on an auto-selected free host port (preferring 5432, stepping past any clash). It waits until Postgres is ready, applies the schema, and saves the connection to a user-level config (~/.notnessie/db.json) so every repository uses it automatically — it never writes to a repository’s .env.

notnessie pgup

Requires Docker. Writes and manages a bundled Compose file at ~/.notnessie/docker-compose.yml.


notnessie pgdown

Stop the managed Postgres. The data volume is preserved by default, so notnessie pgup brings it back with your memory intact.

notnessie pgdown [--volume]
Option Description Default
-v, --volume Also remove the data volume — permanently deletes all stored memory (asks for confirmation first). off

notnessie mcp

Start the MCP server. This is the command Claude Code launches via .mcp.json; you rarely run it by hand. Serves over stdio by default.

notnessie mcp [--http] [-p <port>]
Option Description Default
--http Serve over Streamable HTTP instead of stdio. off (stdio)
-p, --port <port> HTTP port (with --http). 4320

See MCP tools for the tools it exposes.


notnessie dev

Run the local daemon and the Next.js dashboard for browsing and curating memory.

notnessie dev [-p <port>] [--root <path>]
Option Description Default
-p, --port <port> Dashboard port. 4319
--root <path> Repository root. current directory

Search project memory and print ranked matches (hybrid keyword + semantic).

notnessie search <query> [options]
Argument / option Description Default
<query> Search text (required). —
-t, --types <types> Comma-separated memory types, e.g. decision,constraint. all types
-l, --limit <n> Max results. 8
--json Output JSON instead of formatted text. off

notnessie context

Generate a context pack for a task — Markdown by default, structured JSON on request.

notnessie context [task] [options]
Argument / option Description Default
[task] Task description. Omit for a general project pack. none
-l, --limit <n> Max memories. 12
--json Output structured JSON instead of Markdown. off

notnessie seed

Populate the current project with the demo memory dataset, for trying things out.

notnessie seed [--root <path>]
Option Description Default
--root <path> Repository root. current directory

notnessie memory

Inspect and manage stored memory. Has the following subcommands.

notnessie memory list

List memories, newest first.

notnessie memory list [options]
Option Description Default
-t, --types <types> Comma-separated memory types. all types
-l, --limit <n> Max results. 50
--deleted Show only soft-deleted memories. off
--json Output JSON instead of formatted text. off

notnessie memory show

Show a single memory with its source (always JSON).

notnessie memory show <id> [--json]
Argument / option Description
<id> Memory id (from notnessie memory list).
--json Output JSON (the default).

notnessie memory delete

Delete a memory — soft by default (restorable), or permanently with --hard.

notnessie memory delete <id> [--hard] [-y]
Argument / option Description
<id> Memory id.
--hard Permanently delete (cannot be restored).
-y, --yes Skip the confirmation prompt (for scripts).

notnessie memory restore

Restore a soft-deleted memory.

notnessie memory restore <id>

notnessie memory pin / unpin

Pin a memory so it ranks first, or unpin it.

notnessie memory pin <id>
notnessie memory unpin <id>

notnessie hook

Run a Claude Code lifecycle hook. These read a JSON event payload on stdin and are run by Claude Code, not by hand — they are wired up by notnessie init in .claude/settings.json. Documented here for completeness; see Lifecycle hooks.

notnessie hook <event>
Event Hook
session-start SessionStart — inject a context pack.
user-prompt-submit UserPromptSubmit — refresh task context.
post-tool-use PostToolUse — capture verified commands.
stop Stop — summarize the session into memory.
pre-compact PreCompact — summarize before compaction.