Show HN: Promptctl – Git for your AI prompts Promptctl, a new open-source tool from Naya AI, brings Git-like version control to AI prompts, enabling developers to track, diff, and rollback prompt changes. The tool addresses the common problem of prompts being scattered across files, documents, and chats, making it difficult to debug performance regressions. Written in Go, it stores prompt history locally and supports commands such as commit, log, diff, show, rollback, and search. Git for your AI prompts. Track, version, diff, and rollback your LLM prompts — just like you version your code. bash $ promptctl commit system --file prompts/system.txt -m "initial" ✓ Committed prompt "system" as v1 $ promptctl commit system --file prompts/system.txt -m "added citation rule" ✓ Committed prompt "system" as v2 $ promptctl diff system --- system v1 2026-06-01 09:12 +++ system v2 2026-06-03 14:47 - You are a helpful assistant. + You are a helpful assistant. Always cite your sources. $ promptctl rollback system 1 -m "reverting — citation hurt recall" ✓ Rolled back "system" to v1 → saved as v3 Your prompts live in random places — hardcoded in files, buried in Notion docs, copy-pasted in Slack. When something breaks or stops working well, you have no idea: - What the prompt looked like last week when it was working - What changed between versions - Which version performed best - How to get back to a specific point promptctl solves this. It's git for prompts. Requires Go 1.22+ https://go.dev/dl/ . go install github.com/naya-ai/promptctl/cmd/promptctl@latest Or build from source: git clone https://github.com/naya-ai/promptctl.git cd promptctl make build binary at bin/promptctl or: go build -o bin/promptctl ./cmd/promptctl/ 1. Initialize in your project creates .promptctl/store.json promptctl init 2. Save your first prompt version echo "You are a helpful assistant." | promptctl commit system -m "initial" 3. Make a change and save it echo "You are a helpful assistant. Always cite sources." | promptctl commit system -m "added citation rule" --model claude-3 4. See the history promptctl log system --preview 5. Compare latest vs. previous promptctl diff system 6. Roll back promptctl rollback system 1 -m "reverting" Initialize promptctl in the current directory. Creates .promptctl/store.json . promptctl init Save a new version of a prompt. From stdin echo "You are a helpful assistant." | promptctl commit system -m "initial" From a file recommended for longer prompts promptctl commit system --file prompts/system.txt -m "from file" With metadata promptctl commit classifier -m "optimized for speed" --model gpt-4o-mini --tag prod Interactive — type END on its own line to finish promptctl commit system -m "manual entry" Flags: -m / --message — commit message default: "add version N" --model — tag with the model this prompt targets --tag — add a label to this version -f / --file — read content from a file instead of stdin Show version history. promptctl log all prompts promptctl log system one prompt promptctl log system --preview show content snippets promptctl log system --tag prod filter by tag promptctl log system --json machine-readable output Compare versions side by side with color highlighting. promptctl diff system latest vs. previous promptctl diff system 2 v2 vs. latest promptctl diff system 1 3 v1 vs. v3 Show a prompt version. promptctl show system latest version promptctl show system 2 specific version promptctl show system --raw content only good for piping promptctl show system --json full JSON promptctl show system --copy copy to clipboard macOS/Linux promptctl show system --version-at 2026-06-01 version that was latest on that date Restore a previous version. Creates a new version non-destructive . promptctl rollback system 1 promptctl rollback system 1 -m "reverting — citation hurt recall" List all tracked prompts. promptctl list promptctl list --json JSON array with version counts promptctl list --names one name per line used by shell completions Search across content, commit messages, and tags. promptctl search "helpful assistant" promptctl search prod matches tag "prod" Export all versions of a prompt to Markdown. promptctl export system promptctl export system system-history.md Fork a prompt with its full version history under a new name. promptctl copy system system-experimental Rename a prompt. All history moves with it. promptctl rename system assistant Delete a prompt and all its versions. promptctl delete system Auto-commit a file whenever it changes on disk. Great for editing prompts in your usual editor and automatically versioning every save. promptctl watch prompts/system.txt --as system promptctl watch prompts/system.txt --as system --model claude-3 --interval 2 Flags: --as