cotext
cotext is a Rust CLI and TUI for keeping project context in one structured, git-friendly place instead of scattering design notes, progress logs, TODOs, and caveats across unrelated markdown files.
This project is built jointly by humans and OpenAI Codex. Treat AI-generated changes like any other contribution: review them, test them, and keep durable project context in sync.
cotext manages five entry categories:
designnoteprogresstododeferred
Install
For local development from a checkout:
Quick Start
Each project gets a plain-text .cotext/ directory:
.cotext/
cotext.toml
entries/
design/
note/
progress/
todo/
deferred/
Core Commands
cotext init [path]
cotext new <category> <title>
cotext update <id>
cotext list
cotext show <id>
cotext render [--audience human|agent|codex|claude]
cotext agent install <codex|claude|all>
cotext tui
High-signal patterns:
cotext render --audience codexcotext render --category progress --category todo --audience codexcotext list --category todo --status active --status plannedcotext update <id> --append "Validation: cargo test"cotext agent install all --overwrite
Agent Integration
cotext agent install codex writes:
AGENTS.md.codex/skills/cotext-context/SKILL.md.codex/skills/cotext-context/agents/openai.yaml
cotext agent install claude writes:
CLAUDE.md.claude/skills/cotext-context/SKILL.md.claude/commands/cotext.md.claude/commands/cotext-sync.md
Use --codex-skill-dir <path> only when you intentionally want a second Codex skill copy outside the tracked .codex/skills/cotext-context/ tree.
For the full agent workflow and maintenance notes, see docs/agent-workflow.md.
TUI
cotext tui provides a single-screen terminal board for browsing, editing metadata, previewing, and copying entries and packets. Press Enter to open the selected entry in $VISUAL or $EDITOR for real markdown editing.
Key bindings:
Tab/Shift-Tab: switch categoryj/k: move selectionEnter/e: open the selected entry in your editorn/+: add entryd/Delete: delete entry with confirmationt/s/g: edit title, section, and tagsp/a: change preview mode and audience?in browse mode, orF1anywhere: toggle helpPageUp/PageDown: scroll previewCtrl-s: saveEsc: cancelc/C: copy selected or category packetq: quit