惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
博客园_首页
T
Tailwind CSS Blog
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东
S
SegmentFault 最新的问题
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
Jina AI
Jina AI
WordPress大学
WordPress大学
U
Unit 42
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

Hacker News - Newest: "AI"

AI can't read an investor deck AI as an attorney? Student uses ChatGPT, Gemini to sue UW over alleged racial discrimination Hacking MCP Servers in AI Systems – The Rug Pull: Tool Changes After Approval GitHub - MeepCastana/KubeezCut: Free Web based video editor Can AI judge journalism? A Thiel-backed startup says yes, even if it risks chilling whistleblowers Coming soon: 10 Things That Matter in AI Right Now DARPA built an AI to fact-check enemy weapons claims What explains heterogeneity in AI adoption? When AI Meets Muscle: Context-Aware Electrical Stimulation Promises a New Way to Guide Human Movements - Department of Computer Science AI Changed How We Build. It Did Not Change What Matters. Linux rules on using AI-generated code - Copilot is OK, but humans must take 'full responsibility for the… Meta spins up AI version of Mark Zuckerberg to engage with employees Code Mode: Let Your AI Write Programs, Not Just Call Tools | TanStack Blog GitHub - Delavalom/graft: Go framework for building AI agents. Type-safe tools, multi-provider (OpenAI, Anthropic, Gemini, Bedrock), zero vendor SDKs. India's TCS tops estimates, says new AI models did not dent services demand Gen Z's fading AI hype Strong feeling: we are in a folded AI reality GitHub - machinarii/total-recall-catalog: A reference catalog of latest knowledge retrieval, memory & RAG systems GitHub - mensfeld/code-on-incus: Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.. Quantization, LoRA, and the 8% Problem: Benchmarking Local LLMs for Production AI Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda Powell, Bessent discussed Anthropic's Mythos AI cyber threat with major U.S. banks GitHub - immartian/bellamem: Persistent belief-graph memory for AI agents. Retrieves decisive context by importance — not recency, not RAG, not /compact. recursive-mode: The Repo-Native Operating System for AI Engineering After the attack on Sam Altman's home, will AI CEO's go on the offensive? The biggest advance in AI since the LLM Opus 4.6 vs GPT 5.4 One Prompt Unity World Generation Test “AI polls” are fake polls Client Challenge Can AI be a 'child of God'? Inside Anthropic's meeting with Christian leaders
GitHub - naya-ai/promptctl: Git for your AI prompts — ver...
shawnaya101 · 2026-06-25 · via Hacker News - Newest: "AI"

promptctl — Git for your AI prompts

CI License: MIT Go

Git for your AI prompts.

Track, version, diff, and rollback your LLM prompts — just like you version your code.

$ 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

The Problem

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.


Installation

Requires Go 1.22+.

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/

Demo

promptctl terminal demo


Quick Start

# 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"

Commands

init

Initialize promptctl in the current directory. Creates .promptctl/store.json.

commit

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

log

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

diff

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

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

rollback

Restore a previous version. Creates a new version (non-destructive).

promptctl rollback system 1
promptctl rollback system 1 -m "reverting — citation hurt recall"

list

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

Search across content, commit messages, and tags.

promptctl search "helpful assistant"
promptctl search prod              # matches tag "prod"

export

Export all versions of a prompt to Markdown.

promptctl export system
promptctl export system > system-history.md

copy

Fork a prompt with its full version history under a new name.

promptctl copy system system-experimental

rename

Rename a prompt. All history moves with it.

promptctl rename system assistant

delete

Delete a prompt and all its versions.

watch

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 <name> — the prompt name to commit under (required)
  • --model — tag new versions with this model
  • --interval <seconds> — polling interval (default: 1)

Commit timestamps match the file's modification time, not when promptctl ran.

prune

Keep only the N most recent versions and discard the rest.

promptctl prune system --keep 10

stats

Show a store-wide overview.

Stats:
──────────────────────────────────────────────────
  Prompts:         4
  Total versions:  23
  Total content:   8432 chars
  First commit:    2026-06-01 09:12:00
  Last commit:     2026-06-24 15:30:44
  Most iterated:   system (12 versions)

completion

Print a shell completion script.

# Bash — add to ~/.bashrc
source <(promptctl completion bash)

# Zsh — add to ~/.zshrc
source <(promptctl completion zsh)

# Fish — save to completions directory
promptctl completion fish > ~/.config/fish/completions/promptctl.fish

Completions dynamically suggest prompt names for commands that take a <name> argument.


How It Works

promptctl stores everything in .promptctl/store.json — similar to how .git/ works. The store is discovered from your current directory or any parent, so commands work from any subdirectory.

your-project/
├── .promptctl/
│   └── store.json     ← all prompt versions live here
├── src/
└── ...

Add .promptctl/ to your project's .gitignore to keep prompt history local. If your team wants to share versions in git, track only the store file:

.promptctl/*
!.promptctl/store.json

Reading & Writing Programmatically

Several commands support --json or --raw for scripting:

# Read the latest version of a prompt
promptctl show system --raw

# Pipe the latest content into another tool
promptctl show system --raw | pbcopy

# List prompts as JSON
promptctl list --json

# Ingest output from a script
./generate-prompt.sh | promptctl commit system -m "generated"

Tagging & Model Tracking

# Tag a version for filtering
promptctl commit system -m "production" --tag prod --model claude-opus-4-8

# View only tagged versions
promptctl log system --tag prod

# Find all prompts referencing a tag
promptctl search prod

Why Zero Dependencies?

promptctl uses only Go's standard library — no external packages, no version conflicts, no go mod tidy surprises. One binary, no runtime.


Roadmap

  • Remote sync (S3, GitHub Gist)
  • Side-by-side terminal diff view
  • VS Code extension

Contributing

See CONTRIBUTING.md. PRs welcome — open an issue first for major changes.

git clone https://github.com/naya-ai/promptctl.git
cd promptctl
make test
make build

License

MIT © Shawnaya Williams