🛑 Stop chatting. Start merging.
Forces LLM integration directly into your Unix pipeline, treating architectural decisions as Git merge conflicts—requiring you, the human, to resolve them.
⭐️ GitHub newbie here. Your Star gives me enough motivation to skip dinner and code for 2 more hours.
It's like spec-kit, but native to your Terminal.
# 1. Install
curl -sLf https://raw.githubusercontent.com/stephen9412/spec-fab/refs/heads/main/install.sh | sh
# 2. Init
mkdir my-project && cd my-project
spec_init
# 3. Constitution
spec_constitution "Principles: Rust, Clean Code, Zero-Cost Abstractions"
# 4. Drafting - Unleash the Power of Unix Pipes!
echo "Build a Tinder-like app for adopting cats" | spec_new
# 💥 Spec Conflicts! AI found ambiguities in your requirements. Open spec.md to resolve them.
# 5. Architecting
spec_plan
# 💥 Architecture Conflicts! AI provided different implementation strategies. Open plan.md to pick your tactics.The Unix-Philosophy alternative to Spec-Kit.
We threw out all the bloated dependencies. ❌ No Ruby required ❌ No Node.js required ❌ No complex state machines
We kept only the essentials: ✅ Fish Shell (Flow Control) ✅ Fabric AI (The Brain) ✅ Vim / Your Editor (The Decision Maker)
- ⚡️ Blazing Fast: It's just Shell Functions. It installs faster than you can type
npm install. - 🧠 AI Native: Powered by Fabric for architectural brainstorming and review.
- 📄 Pure Markdown: Your documentation is plain text. No hidden databases, no black magic.
- 🤝 Spec-Kit Compatible: We adopt the best practices and prompt logic from GitHub's official spec-kit, but implemented for the command line.
"This is exactly why this project exists."
Ironically, when I was first developing SpecFab, I tried to use the "ultimate stack"—OpenCode + Claude 3.7 Sonnet—to run Spec-kit's official commands, just to generate a basic template for cross-validation.
The result? That "high-tech" combo kept erroring out, leaving me staring at my screen, questioning my life choices.
That was my epiphany: We shouldn't be wrestling with TUIs or debugging complex dependency trees just to capture a flash of inspiration. We need tools that are simpler, more brutal, and won't betray us.
And so, spec-fab was born.
One command. Upgrade your Terminal to an architect's arsenal in 30 seconds.
curl -sLf https://raw.githubusercontent.com/stephen9412/spec-fab/refs/heads/main/install.sh | shWe respect your system hygiene (I'm a clean freak too). spec-fab is disciplined: all core files stay strictly within ~/.specfab.
If you decide to leave, we provide a spec_uninstall command (nuclear option) that wipes spec-fab and its shell hooks instantly.
Our "Do No Harm" Policy:
- We won't delete your
fishshell (it might be your default). - We won't delete
~/.config/fabric(you might have used Fabric before us, and we won't touch your API keys).
The Promise:
- Run
spec_uninstall(Auto-clean). - Or manually
rm -rf ~/.specfab(Simple & brutal). - Your shell config and AI keys remain 100% untouched.
Don't let your project run naked.
spec_init
# ✅ Created Constitution: .specify/memory/constitution.md
# ✅ Created Spec Template: .specify/templates/spec-template.md
# ...
# 🚀 spec-fab environment ready.Tell the AI your rules. Pipe in a doc or give a direct command.
# Pipe mode: Feed a draft
cat draft.md | spec_constitution
# Argument mode: Issue a supreme directive
spec_constitution "Create principles focused on code quality, testing standards, and Rust idioms."Where the magic happens. Give it an idea; get a Git branch and a drafted spec.
cat prd.md | spec_new
# 📥 Reading description...
# 🏷 Slug generated: build-faceswap-pipeline
# 🌿 Git branch created: 1-build-faceswap-pipeline
# 🏗 Drafting Specification...
# 🔍 Refining Spec quality...
# ✅ Spec Created at: specs/1-build-faceswap-pipeline/spec.mdThe AI Architect analyzes your spec and drafts a technical plan. If it finds uncertainty, it deliberately creates Git conflicts for you to resolve.
spec_plan
# 🚀 Generating Technical Plan...
# 🧠 Architecting solution...
# 💥 CONFLICTS DETECTED! The Architect presented options.
# Please open the file and resolve the merge conflicts.
# (You decide the architecture. Don't let AI hallucinate your system.)The journey of SpecFab has just begun. We are working on the final pieces to bridge the gap from "Decision" to "Execution":
| Command |
|---|
spec_task |
spec_checklist |
spec_summarize_spec |
spec_summarize_plan |
We welcome community contributions! SpecFab believes that "Small is Beautiful."
- Optimize Patterns (
patterns/): The AI's brain is in the Prompts. If you find better prompts for rigorous specs, submit a PR. - Improve Fish Functions: We chase performance and readability. Better code is always welcome.
- Docs & Examples: Help us improve the README.
- Keep Dependencies Minimal: Avoid heavy runtimes like Python, Node, or Ruby inside the core. We want to run on just
fish,curl,git, andfabric. - Unix Philosophy: Functions should do one thing well and support Piping (
|). - Note: We are open to adding tools like
gumlater for better UX (for visual learners or quick selections), but core functionality must remain pipe-friendly.
- Fork it.
- Create your branch (
git checkout -b feature/AmazingFeature). - Commit (Conventional Commits preferred).
- Push and Open PR.
