If you've ever spent hours tweaking a prompt only to realize you can't remember what it looked like three versions ago, you're not alone. Prompt management has become one of the messiest parts of working with LLMs in production—and most teams are handling it with sticky notes, Slack threads, and wishful thinking. A new open-source tool called promptctl aims to fix that by bringing Git-style version control directly to your AI prompts.
The Problem With Prompt Chaos
The pitch is simple: promptctl is "Git for your prompts." Your prompts currently live in random places—hardcoded in config files, buried in Notion docs, copy-pasted into Slack channels. When something breaks or stops working well, you have no idea what the prompt looked like when it was actually performing. You can't diff versions, track changes over time, or roll back to a known-good state. promptctl solves this by creating a local version history stored in .promptctl/store.json, discovered from your current directory or any parent directory—so commands work seamlessly from subdirectories.
Core Commands That Actually Ship
The CLI supports the full workflow you'd expect: init sets up the store, commit saves new versions (from stdin, files, or interactive input), and log shows version history with optional previews. The diff command provides side-by-side comparison with color highlighting—you can diff any two versions by specifying their numbers. The rollback command is non-destructive: it restores a previous version but creates a new entry rather than overwriting history, so you never lose work. Other commands include show, list, search, export, copy, rename, and delete. There's also a watch mode that auto-commits a file whenever it changes on disk—perfect for editing prompts in your preferred editor and automatically versioning every save.
Zero Dependencies: A Rare Breed
Here's what stands out about promptctl's architecture: it uses only Go's standard library. No external packages, no version conflicts, no go mod tidy surprises. One binary, no runtime dependencies beyond Go 1.22+. Installation is straightforward—either go install github.com/naya-ai/promptctl/cmd/promptctl@latest or build from source with a simple make build. The tool also includes shell completions for Bash, Zsh, and Fish, dynamically suggesting prompt names where applicable.
Roadmap Includes Remote Sync and VS Code Extension
According to the project roadmap, the team plans to add remote sync capabilities supporting S3 and GitHub Gist, allowing teams to share prompt versions in git by tracking only the store file. They're also working on a side-by-side terminal diff view for more complex comparisons, plus a VS Code extension that would integrate version control directly into the development workflow. The project is MIT licensed and contributions are welcome via PRs (with issues recommended first for major changes).
Key Takeaways
- promptctl brings Git-style version control to AI prompts with commit, diff, rollback, and log commands
- Built in Go 1.22+ using only standard library—no external dependencies
- Local storage in .promptctl/store.json works from any subdirectory
- Watch mode auto-commits changes when you edit prompt files externally
- Roadmap includes remote sync (S3/Gist), improved diffs, and VS Code integration
The Bottom Line
This is the kind of tool that should've existed two years ago. As teams ship more LLM-powered features to production, treating prompts as throwaway configuration is a liability. promptctl makes version control for prompts as frictionless as it should be—and the zero-dependency approach means it'll actually work when you need it.