| name | nessie |
| description | Access the user's personal context layer from an AI agent session through the local Nessie CLI. Use when the user references prior work, asks what they know about a topic, needs answers grounded in past AI conversations or notes, wants to browse available sources, asks to resume/take over prior AI sessions, or wants Codex to create, update, organize, or generate reusable Nessie contexts. |
Nessie
Use the local nessie CLI as the interface to the user's personal and team context layer. Do not use Nessie MCP tools for this skill; those belong to a different connector surface.
Nessie exposes saved contexts, profile sections, AI conversation transcripts, and synced source graphs such as Obsidian notes and Granola meeting notes. Treat the user's natural-language request as the interface: search or browse what Nessie knows, read the relevant sources, answer directly, and write back only when the user asks or durable knowledge should be preserved.
Codex Execution
Run nessie through the shell. The CLI talks to the Nessie macOS app over localhost and reads/writes local app data, so sandboxed Codex environments may need elevated shell permissions.
- If the shell tool supports escalation and the active approval policy allows it, run every
nessie command with escalated permissions and justify it as needing localhost plus Nessie app data access.
- If the current environment is already unrestricted, or the approval policy rejects escalation flags, run
nessie normally.
- If a
nessie command fails with sandbox, permission denied, localhost/network, or app-access errors, retry once using the strongest available permission mode before reporting a Nessie failure.
- Start substantial Nessie work with
nessie status unless the user is only asking a conceptual question about the skill.
Fast Path
Use this command decision tree before reaching for longer references:
nessie status
nessie check-in
nessie ls
nessie context list --limit 500
nessie folder list
nessie ls <folder-or-root-id> --limit 100
nessie grep "<query>"
nessie grep "<exact term>" -F
nessie cat <node-id>
nessie head <node-id> -n 20
nessie tail <node-id> -n 60
nessie context create --title "<title>" --body-file <file> --folder <folder-id>
nessie sed <context-id> --old-file <old> --new-file <new>
nessie mv <context-id> --to <folder-id>
nessie generate "<prompt>"
Source Selection
- Browse with
nessie ls before search when the user asks what exists, names a source/folder/path, or wants a specific artifact.
- Use
nessie context list for context title lookup. nessie grep searches body content and can miss a context whose title matches but body does not.
- Use
nessie folder list or nessie ls for folder title lookup and navigation.
- Use contexts for synthesized orientation, then verify with primary sources when freshness, exact wording, provenance, or current state matters.
- Use transcripts for what happened in AI conversations.
- Use Obsidian or other notes for user-authored source material.
- Use Granola notes for meetings/calls; browse folders for meeting summaries and search transcript content when needed.
- Use profile commands for identity, connections, projects, decisions, and recurring personal facts.
Search Rules
- Search results are breadcrumbs, not answers. Read the full context, transcript, note, or relevant beginning/tail before synthesizing.
- Run several searches for broad or ambiguous questions: names, product names, companies, repo names, distinctive phrases, and likely synonyms.
- Use
-F / --literal for proper nouns, emails, UUIDs, error codes, file paths, repo names, or exact quoted text. A thin or empty hybrid result on an identifier is a signal to retry literal search.
- Do not run multiple
nessie grep searches in parallel. The local CLI search path is not concurrency-friendly.
- A transcript search hit often lands in the middle of a conversation. Read the beginning for framing and the tail for the decision/current state.
Answering Workflow
- Interpret the user's scope, audience, and freshness needs.
- Browse or search the right source world.
- Read relevant sources in full, or read beginning/tail windows for long transcripts before synthesizing.
- Attribute cautiously: user statements carry more authority than AI-agent proposals inside transcripts.
- Answer with what Nessie supports, noting uncertainty when only partial sources were read.
- Offer or perform write-back when the user asks for a durable context or the exchange produced reusable knowledge.
Read references/agent-behavior.md for deeper source-authority, search, attribution, resume/takeover, and synthesis rules.
Writing And Updates
Prefer file-backed writes for markdown to avoid shell escaping issues:
nessie context create --title "<title>" --body-file /tmp/context.md --folder <folder-id>
nessie sed <context-id> --old-file /tmp/old.md --new-file /tmp/new.md
nessie mv <context-id> --name "<new name>"
nessie mv <context-id> --to <folder-id>
Important edit constraints:
nessie sed is exact string replacement and only edits existing non-empty matches.
nessie sed cannot update an empty context body; if the target context is empty, create a filled replacement in the same folder and preserve/rename the empty context unless the user explicitly asks to delete it.
- Do not delete contexts as a replacement strategy without explicit confirmation.
- Track source document IDs as you read and pass them with
--sources when creating research-grounded contexts.
Read references/context-writes.md before creating, editing, renaming, moving, or deleting contexts or folders.
CLI Details
Read references/cli-adapter.md when you need exact command options, owner scoping, repo scoping, profile commands, team/integration lookup, or generated-context behavior.
Validation
When changing this skill, run:
python3 /Users/SuperBuilder/.codex/skills/.system/skill-creator/scripts/quick_validate.py /Users/SuperBuilder/.codex/skills/nessie