v0.4.723 September 2026

Start projects your AI agents already understand.

One command writes the AGENTS.md instructions, .specify/ workflows, MCP wiring, and engineering docs your agents read first, in each one's native format.

$bunx @outputease/toolkit init

No Bun installed? The npm and npx paths bootstrap the Bun runtime on first run. Set OE_NO_BUN_BOOTSTRAP=1 to opt out.

outputease init  ·  ~/projects
● live preview~12s end to end
bannerpromptsscaffolddone

The context your AI agents need, written once.

One neutral source, generated into every agent's native config. Tuned to your stack, ready for any agent.

.agents/
Neutral source of truth. Edit once; every agent regenerates from it.
instructions/
AGENTS.md core + per-agent addenda
skills/
portable Markdown, translated per agent
mcp/
server definitions, one shape per agent
fidelity-report
what each agent can and can't run
AGENTS.md + bridges
The standard your agents read, plus a native bridge for the ones that need one.
AGENTS.md
read natively by Codex, OpenCode, and the IDE agents
CLAUDE.md
Claude Code bridge
.gemini/settings.json
Gemini CLI bridge
.specify/
Spec-driven workflows from GitHub's Spec-Kit
github/spec-kit
templates/
constitution, plan, tasks, spec
workflows/
specify, plan, implement
extensions/
OutputEase integrations
memory/
long-term plan memory
docs/
Engineering handbook seeded with your stack
architecture.md
system overview
conventions.md
lint, naming, style
testing.md
what gets a test, what doesn't
runbook.md
on-call procedures
13 more
auth, api, cicd, perf, …
my-app/
├─ .agents/neutral source · edit here
│ ├─ instructions/
│ ├─ skills/
│ └─ mcp/
├─ AGENTS.mdread natively by most agents
├─ CLAUDE.mdClaude Code bridge
├─ .gemini/settings.jsonGemini CLI bridge
├─ .specify/github/spec-kit · workflows
│ ├─ templates/
│ └─ workflows/
├─ docs/engineering handbook
├─ src/
├─ .outputeasedrives `outputease update`
├─ .mcp.json
├─ biome.json
└─ package.json

Pick Claude alone and the scaffold skips .agents/ entirely: it writes CLAUDE.md and .mcp.json at the root, plus .claude/, with no neutral source left to regenerate from.

Why it matters

Your agents inherit your conventions on day one.

Skip a week of telling your agent where the linter lives, what the test runner is, or how migrations work. Write it once, ship it with every project.

Claude CodeOpenAI Codex CLIGemini CLIOpenCodeCursorGitHub CopilotWindsurf / Devin

Scaffolding is day one. This is every day after.

The same commands ship with every project. Capture an idea, open a session, spec the work, build in tight cycles, and ship behind a review gate. Then do it again.

  1. Ideate
    /capture→/develop-idea

    Capture a raw idea in TODO.md, then develop it into something you can build now or promote to a spec.

  2. Open
    /quickstart

    Loads your priorities, branch, and the feature in flight, so every session starts oriented.

  3. Spec
    /speckit-specify…/speckit-implement

    Turn an idea into a spec, a plan, and tracked tasks before any code gets written.

  4. Buildrepeats
    /dev-check→/commit

    Run typecheck, lint, tests, and any verify script, then commit. /checkpoint saves work in progress the same way. Repeat until the feature lands.

  5. Ship
    /session-end→/security-review

    Close the session with a push and handoff notes, then open a PR behind a security review.

The next session opens with /quickstart again.

Spec-kit is an external prerequisite (Python + uv). The loop assumes one developer per branch.

Your agent's workspace, already furnished.

The build loop covers the commands you type. This is the rest of what lands: all 15 skills in the payload, 12 hooks wired to the session itself, and 4 reviewers you can hand work to.

  1. Start a session4
    • /first-runWalks a fresh scaffold through environment variables, MCP auth, and first boot.
    • /quickstartOpens a session with a health check, status, and context load.
    • /continueRecovers your bearings after a crash or interrupted session.
    • /load-contextLoads project documentation by topic when you need it.
  2. Shape the work2
    • /captureRecords a raw idea in the TODO backlog fast.
    • /develop-ideaTurns a backlog idea into an approved design and plan.
  3. Build it3
    • /new-componentScaffolds a React component matching your project conventions.
    • /gen-testGenerates bun:test files for a module you just wrote.
    • /a11y-reviewAudits UI against WCAG 2.1 AA before you ship.
  4. Verify and save4
    • /dev-checkRuns typecheck, lint, tests, and any verify script, then scans for secrets.
    • /security-reviewScans code for security issues before a production deploy.
    • /checkpointSaves work in progress mid task, without pushing.
    • /commitWrites a Conventional Commits message and commits the work.
  5. Close it out2
    • /session-endCommits, pushes, updates status, and writes handoff notes.
    • /speckit-archiveMoves a shipped spec into the archive and rewrites its links.
settings.json

Starts with 8 pre-approved commands for your package manager, so install, test, lint, and build stop asking. It is your file from there: widen it, or lock it down. The same file wires the hooks below.

The part you never invoke

12 hooks, wired to the session itself.

Skills wait to be called. These run on the session's own events: before a tool call, after it, and when the agent hands the turn back. Nothing to remember, nothing to invoke.

  1. SessionStart
    a session opens
    • reset-edits

      Clears the edit ledger at the start of every turn.

    • reset-reads

      Clears the source fingerprint ledger once per session.

  2. UserPromptSubmit
    you send a prompt
    • reset-edits

      Clears the edit ledger at the start of every turn.

  3. PreToolUse
    a tool call is about to run
    • protect-generatedcan deny

      Blocks edits to generated files and points at the real source.

    • protect-sensitivecan deny

      Keeps agents out of secret files, lock files, keys, and cloud credentials.

    • protect-sensitive-bashcan deny

      Stops shell commands that would read your secrets, keys, or credential files.

    • prevent-barrel-bypass

      Warns when an import reaches into package internals instead of the barrel.

  4. PostToolUse
    a tool call just finished
    • auto-format

      Formats each edited file with Biome the instant an agent saves it.

    • record-edits

      Records every edited file so the end-of-turn checks stay narrow.

    • record-reads

      Fingerprints every file read, so later drift gets caught.

  5. Stop
    the agent hands the turn back
    • batch-test

      Runs the co-located tests for every file touched, then reports failures.

    • batch-typecheck

      Typechecks the packages you changed, once the turn ends.

    • verify-sources

      Flags any file that changed after the agent read it this session.

Every hook file ships with every project. On bun they are all wired; on another package manager the four PreToolUse guards are, and the rest sit unwired until you want them. Hooks are Claude Code specific, so this is the one part of the scaffold that does not translate to the other agent targets.

Subagents

Work you can hand off whole.

Each one runs in its own context with its own tool list, so a review never eats the session you are working in.

  • accessibility-reviewer

    Audits components and pages against WCAG 2.1 AA, flagging contrast, keyboard, and ARIA failures.

  • dependency-auditor

    Checks every workspace package for version conflicts, orphans, and broken workspace protocols.

  • i18n-reviewer

    Compares your language files and reports missing keys, placeholders, and untranslated strings.

  • test-writer

    Writes unit, end-to-end, and accessibility tests that follow your existing conventions.

Proven tools, wired together.

The loop runs on proven open source, plus the session glue OutputEase ships. Here is how the pieces fit, and where each one comes from.

Added by OutputEaseour in-house workflow

  • Session skillsopen and close every session

    Ours. /quickstart opens oriented, /checkpoint and /dev-check keep the build honest, and /session-end pushes with handoff notes.

    OutputEaseno prereqs

Integratedproven open source

  • spec-kitthe planning track

    Runs when a feature spans sessions: spec, clarify, plan, tasks, then implement. Turns intent into tracked work before any code.

    github/spec-kitneeds Python + uv
  • superpowersthe workflow backbone

    Underneath every session: brainstorm an idea into a design, write the plan, build test-first, debug by root cause, and verify before done.

    obra/superpowers
  • cavemanthe token saver

    Optional caveman-speak mode: same technical content, with caveman claiming about 65% fewer output tokens. Pick it at init, toggle with /caveman.

    JuliusBrussee/cavemanoptional at init

The rest of the toolbox, wired at init.

Those four are the workflow. Around them the installer resolves a 21 entry catalogue of Claude plugins and MCP servers against your project shape. On a web app with Supabase, everything in it that is not a layer above lands like this, and it writes .mcp.json with context7, playwright, and supabase.

Wired for youNo prompt. These land because the project shape calls for them.

  • Git commit workflow with conventional format, PR creation, and branch cleanup

  • User-configurable rule engine for enforcing workflow patterns via behavioral hooks

  • Audit, improve, and update CLAUDE.md project configuration files

  • Code review pull requests with detailed analysis

  • Simplifies and refines code for clarity, consistency, and maintainability

  • Create distinctive, production-grade frontend interfaces with high design quality

    when the project has a frontend

  • Library documentation retrieval via MCP; query up-to-date docs and code examples

  • Browser automation via MCP; click, navigate, fill forms, take screenshots, handle dialogs

    when the project has a frontend

  • Supabase backend services via MCP: execute SQL, manage projects/branches, deploy edge functions, generate types

    when you pick Supabase

Offered at initA multiselect at the end of the run, the same one that offers superpowers and caveman. Skip it and none of these install.

  • Comprehensive PR review with 6 specialized agents: code-reviewer, code-simplifier, comment-analyzer, test-analyzer, silent-failure-hunter, type-design-analyzer

  • CodeRabbit AI code review with thorough analysis of code changes

  • Plugin development guidance: create plugins, develop agents/commands/hooks/skills, MCP integration

  • Creates interactive HTML single-file playgrounds for visual configuration, exploration, and prototyping with live controls

    when the project has a frontend

  • Message-level output shaping: action first, numbered steps, restated progress, concrete time estimates, no preamble or closers

  • Notion workspace integration: search, create pages/tasks/database rows, query databases

  • Figma design integration: implement designs to code, code-connect components, create design system rules

    when the project has a frontend

  • Sentry error tracking: fetch issues, natural language queries, setup AI monitoring/logging/metrics/tracing

  • PostHog analytics: query insights, manage feature flags, experiments, dashboards, surveys, error tracking, LLM analytics

  • Analyze codebase and recommend Claude Code automations (hooks, subagents, skills, plugins, MCP servers)

Any preset, one flag.

Skip the wizard with --preset. Runtime, linter, test runner, and agent context tuned for what you're building. Adding to an existing monorepo instead? --scope workspace-app and --scope workspace-package scaffold into it.

Web App

Next.js and Tailwind, with the backend and runtime you pick at init.

--preset web-app
Backend and runtime

Bun runtime with Drizzle, no hosted backend wired in.

$outputease init my-web-app --preset web-app
Stack
Next.js 16React 19Tailwind CSSshadcn/uiBunDrizzle
What gets scaffolded
app
public

Every tool the toolkit knows, queryable.

235 vetted tools across 5 sections, typed and validated. The CLI resolves dependencies, writes configs, and seeds your docs from it. Import it yourself for the same.

Section
Platform
Priority
235 of 235 toolsdata/dev-stacks.json
@anthropic-ai/claude-code-sdk
AI Agent SDK · Developer Tools
@astrojs/mdx
Content Authoring · Application & Data
@astrojs/react
Framework Integration · Application & Data
@astrojs/rss
Content Distribution · Application & Data
@astrojs/sitemap
SEO · Developer Tools
@axe-core/playwright
Accessibility CI Testing · Developer Tools
@capacitor-community/sqlite
Local Database · Application & Data
@capacitor/appreq
App Lifecycle · Application & Data
@capacitor/browser
In-App Browser · Application & Data
@capacitor/camera
Camera · Application & Data
@capacitor/clipboard
Clipboard · Application & Data
@capacitor/devicereq
Device Info · Application & Data
import { loadDevStacks } from "@outputease/toolkit/dev-stacks"same dataset, programmatic access

Nothing here updates on its own. Run the command that matches what changed.

outputease upgrade

Updates the toolkit itself.

runsbun add -g @outputease/toolkit@latest
When a new release ships.
outputease update

Refreshes your project's config.

refreshes.agents/, .specify/, generated configs
In each scaffolded project.
outputease speckit

Installs, refreshes, or verifies spec-kit.

modesinit | refresh | verify
When the spec workflow drifts or upgrades.
outputease agents

Generates, checks, applies, or migrates agent configs.

modesgenerate | check | apply | migrate
After you edit .agents/.

Refresh your tooling without breaking your code.

Atomic refresh of .agents/, .specify/, and the generated agent configs. Your edits stay put. Conflicts get an interactive prompt.

  • 1
    Reads .outputease marker
    knows what was scaffolded, what version, when
  • 2
    Fetches @latest from npm registry
    two-step: metadata then tarball
  • 3
    Diffs with your project
    byte-level compare, ignores generated noise
  • 4
    Asks before overwriting
    overwrite / skip / view-diff / apply-all / skip-all
  • 5
    Atomic commit
    all-or-nothing, rolls back on signal
outputease updateconflict
Comparing toolkit v0.2.0 → v0.2.1
✓.agents/skills/gen-test/SKILL.mdupdated, no local changes
✓.specify/templates/plan.mdupdated, no local changes
?AGENTS.mdlocally modified · pick action
↻.outputeasebumped to 0.2.1
Conflict on AGENTS.md
You edited this file. Toolkit also updated it. What now?
src/lib/stacks.ts
import {
loadDevStacks,
validateDevStacks,
getDevStacksPath,
} from "@outputease/toolkit";
 
const stacks = loadDevStacks();
 
const webStacks = stacks.filter(
(s) => s.platforms.webApp && s.priority !== "optional"
);
 
const result = validateDevStacks(getDevStacksPath());
if (result.hasErrors) {
console.error(result.crossFieldIssues);
}

Use the same data the CLI uses.

Validating a dev-stack mapping? Generating docs from the dataset? Import the loaders, or the same @outputease/toolkit/factsexport that bakes this page's own numbers. Fully typed, MIT.

loadDevStacks()the full development-stack registry
loadAgentStacks()AI-agent tooling per platform
loadAgentTargets()the agent targets the CLI can scaffold for
validateDevStacks()schema + cross-field checks, returns a result (no throw)
validateAgentStacks()parity tests included
listShippedSkills()every skill, hook, and subagent in the payload
resolveInitStack()the plugins and MCP servers a given project shape wires

Not writing TypeScript? The same inventory is published as JSON at /facts.json, the dataset at /dev-stacks.json, and an orientation file for agents at /llms.txt. The validators also ship as bins: outputease-validate, outputease-validate-agents, outputease-validate-targets.

Open source, end to end.

MIT-licensed. Zero telemetry. Read the source, file an issue, send a PR.

MIT
license
v0.4.7
current
zero
telemetry
Bun · npm · curl
support