Skip to content

Repository files navigation

version 0.1.0

Spok logo

CI License: MIT

Lightweight spec-driven development for AI coding agents. Spok helps you and your agent agree on what to build, ship one thin slice at a time, and fold the final behavior back into living specs.

Spok is built around four workflow skills you give your AI coding assistant:

/spok-explore  ->  /spok-propose  ->  /spok-apply  ->  /spok-archive

That's the whole surface. Explore is a thinking-only mode for investigating ideas before a proposal. Propose creates a change with a chunked tasks list, apply ships one chunk end-to-end at a time, and archive folds your delta specs into the main specs.

Follow @0xjgv on X for updates.

Quick Start

Requires Bun 1.3.0 or higher.

The npm package has not been published. Install Spok from source:

mkdir -p "$HOME/.local/share"
git clone https://github.com/0xjgv/spok.git "$HOME/.local/share/spok"
cd "$HOME/.local/share/spok"
bun install
bun run build
mkdir -p "$HOME/.bun/bin"
ln -sf "$PWD/bin/spok.js" "$HOME/.bun/bin/spok"
spok version

Keep the source checkout at $HOME/.local/share/spok; the global spok command links to it.

Then initialize Spok inside your project:

cd your-project
spok init

Now tell your AI coding assistant:

/spok-propose <what-you-want-to-build>

Use /spok-explore <topic> first when you want to think through an idea before proposing work.

spok init configures your AI coding assistants, installs the four workflow skills (spok-explore, spok-propose, spok-apply, spok-archive), and vendors the helper skills they call (spok-flow, spok-create-scoped-chunks, and the rest of the closure).

Note

Not sure if your tool is supported? View the full list. Spok supports 25+ tools and growing.

See It In Action

You: /spok-explore should we add dark mode?
AI:  Investigates the existing UI and summarizes options without changing files.

You: /spok-propose add-dark-mode
AI:  Created spok/changes/add-dark-mode/
     + proposal.md - why we're doing this, what's changing
     + specs/       - requirements and scenarios
     + design.md    - technical approach
     + tasks.md     - chunked checklist (3 chunks)
     Run /spok-apply to ship the first chunk.

You: /spok-apply
AI:  Shipping chunk 1: Add theme context + CSS variables
     [runs research -> design -> plan -> implement -> review -> commit]
     + Chunk shipped. 2/3 remaining.

You: /spok-apply
AI:  Shipping chunk 2: Wire toggle component to localStorage
     + Chunk shipped. 1/3 remaining.

You: /spok-apply
AI:  Shipping chunk 3: Apply theme to remaining surfaces
     + Chunk shipped. 0/3 remaining. Run /spok-archive.

You: /spok-archive
AI:  Applied delta specs to spok/specs/ui/spec.md
     Archived to spok/changes/archive/2026-05-26-add-dark-mode/

What Spok Creates

Spok keeps planning artifacts next to your code:

spok/
├── specs/                  # Source-of-truth behavior specs
├── changes/
│   └── add-dark-mode/
│       ├── proposal.md     # Intent, scope, and approach
│       ├── specs/          # Delta specs for this change
│       ├── design.md       # Technical design
│       └── tasks.md        # Chunked implementation checklist
└── config.toml             # Optional project config

Each change is isolated until you archive it. During archive, Spok applies the delta specs to spok/specs/ and moves the completed change into history.

Why Spok?

AI coding assistants are powerful, but they get unpredictable when requirements live only in chat history. Spok adds a lightweight spec layer so the human and agent agree before implementation starts.

  • Agree before you build - capture intent, requirements, and design before code changes.
  • Stay organized - keep every proposed change in its own folder with specs, design, and tasks.
  • Explore before proposing - use /spok-explore as a thinking-only mode when the direction is still unclear.
  • Ship one chunk at a time - /spok-apply runs a full research -> design -> plan -> implement -> review -> commit loop for one chunk, then stops.
  • Use your tools - Spok works with 25+ AI coding tools and does not lock you into one IDE or model.

Docs

Philosophy

-> fluid, not rigid
-> iterative, not waterfall
-> easy, not complex
-> built for brownfield, not just greenfield
-> scalable from personal projects to enterprises

How we compare

vs. Spec Kit (GitHub) - Thorough but heavyweight. Rigid phase gates, lots of Markdown, Python setup. Spok is lighter and lets you iterate freely.

vs. Kiro (AWS) - Powerful but you're locked into their IDE and limited to Claude models. Spok works with the tools you already use.

vs. nothing - AI coding without specs means vague prompts and unpredictable results. Spok brings predictability without the ceremony.

Updating Spok

Pull and rebuild the source checkout:

cd "$HOME/.local/share/spok"
git pull --ff-only
bun install
bun run build

Refresh agent instructions:

Run this inside each project to regenerate AI guidance and ensure the latest skills are active:

spok update

Usage Notes

Model selection: Spok works best with high-reasoning models. We recommend Codex 5.5 and Opus 4.7 for both planning and implementation.

Context hygiene: Spok benefits from a clean context window. Clear your context before starting implementation and maintain good context hygiene throughout your session.

Contributing

Small fixes - Bug fixes, typo corrections, and minor improvements can be submitted directly as PRs.

Larger changes - For new features, significant refactors, or architectural changes, please submit a Spok change proposal first so we can align on intent and goals before implementation begins.

When writing proposals, keep the Spok philosophy in mind: we serve a wide variety of users across different coding agents, models, and use cases. Changes should work well for everyone.

AI-generated code is welcome - as long as it's been tested and verified. PRs containing AI-generated code should mention the coding agent and model used (e.g., "Generated with Claude Code using claude-opus-4-5-20251101").

Development

  • Install dependencies: bun install
  • Build: bun run build
  • Test: bun run test
  • Develop CLI locally: bun run dev or bun run dev:cli
  • Point global spok at this checkout: ln -sf "$PWD/bin/spok.js" ~/.bun/bin/spok
  • Keep the linked CLI current while editing: run bun run dev in one terminal, then use spok ... in another
  • Commit messages: short and imperative, one line ("Add verdict gate", not "feat: added verdict gates")

Other

Telemetry

Spok collects anonymous usage stats.

We collect only command names and version to understand usage patterns. No arguments, paths, content, or PII. Automatically disabled in CI.

Opt-out: export SPOK_TELEMETRY=0 or export DO_NOT_TRACK=1

Maintainers & Advisors

See MAINTAINERS.md for the list of core maintainers and advisors who help guide the project.

License

MIT

About

Lightweight spec-driven development for AI coding agents

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages