Skip to main content

OpenWish (OW)

Need-Driven Development for humans and coding agents.

Humans ask. AI identifies needs, aligns solutions, plans, implements, and reviews. Humans review the results. Current needs remain binding after implementation, so the next feature does not quietly undo what the previous one accomplished. OW operates on needs. Asks stay in conversation; existing needs are revised or reopened, and distinct outcomes become new needs. There are no change records. Small, clear changes within existing intent go straight to implementation and verification. OW's structured workflow is for work that benefits from it.

OpenWish takes inspiration from Spec Kit and OpenSpec, with durable needs and bounded agent context at the center of the workflow.

Get started

Requires Python 3.11+. The runtime has no third-party dependencies. Install the CLI from PyPI with uv:

uv tool install openwish
cd /path/to/your/product
ow init

To install from a source checkout, use uv tool install .. The package name is openwish. The installed commands are ow (the canonical short form used here) and its exact alias openwish. If your shell cannot find them, run uv tool update-shell and open a new terminal.

ow init opens a terminal multi-select for OpenCode, Claude Code, Codex, and generic Agent Skills. Move with the arrow keys, toggle with Space, and press Enter to initialize all selected harnesses. Press A to toggle all or Q/Esc to cancel. Installed harnesses are preselected on subsequent runs. Basic or narrow terminals use a numbered multi-select instead.

To select harnesses directly, including in scripts:

ow init --harness opencode claude codex
# Equivalent: ow init --harness opencode --harness claude --harness codex

Without an interactive terminal, specify --harness. Codex and generic Agent Skills share .agents/skills, so selecting both installs one copy. One product/domain in one repository, including a monorepo, is the default.

Updating installed skills

Upgrade the CLI, then run ow init again in your project:

uv tool upgrade openwish
ow init

Initialization installs missing integrations and compares each selected file's installed version with the CLI's bundled version:

Installed version Behavior
Older Overwrite with the bundled version, including any local edits
Same Leave the file untouched, including local edits and timestamps
Newer Ask before downgrading; keeping the newer files is the default

Downgrades require explicit terminal confirmation; scripts fail before writing if confirmation is needed. Declining keeps newer files while other selected installs/upgrades proceed. Deselection does not uninstall existing integrations.

Version stamps and openwish/installation.json track installed skills and command adapters. Exact unversioned v0.2 templates are recognized and upgraded; unknown unversioned files are preserved with an actionable error. Existing needs, specs, project configuration, policy, and knowledge are preserved when reinitializing. For the proportional workflow introduced in 0.4, see upgrade guidance.

In OpenCode, start with:

/onboard
/ow-propose Let operations reconcile this month's transactions without copying rows.

Or explicitly choose the uninterrupted workflow:

/fast-forward Let operations reconcile this month's transactions without copying rows.

/fast-forward skips all OW confirmations and approvals, including final acceptance, for the selected needs' current implementation revisions. It still performs alignment, planning, implementation, verification, and AI review. It asks only for genuinely blocking clarification, access, or manual observations, after continuing any independent ready work.

The workflow

OW is opt-in. Installing its skills does not require using them for every edit, and instructions to work without OW are respected.

Routine changes: inspect → implement → verify → report. A localized, reversible fix, exact command alias, documentation update, or small refactor within clear existing intent needs no new need, epic, gate receipt, or acceptance prompt. Update an existing spec when its contract would otherwise become inaccurate.

Structured work: use when outcomes or constraints change, work requires substantial coordination, or consequential product/compatibility/data decisions remain. Preparation is continuous:

Ask → Propose → Align → Plan → Implement ↔ Review → Accepted results
       └── prepare together ──┘                    │
         one authorization                final acceptance
         if still needed                  in default mode

A clear instruction to implement already supplies authority for that scope. Otherwise, ask once about the combined outcome, approach, and implementation. Clarify genuine ambiguity early. Plan-only requests stop at the plan. Technical repairs or artifact relinking within authorized scope do not require renewed permission. Implementation continues through ready work and review/remediation; structured default work requests final acceptance once available work is finished.

Skill Responsibility
ow-propose Distill an ask into new or revised needs; clarify material intent
ow-align Reconcile all current needs and affected implementations; update specs/designs
ow-plan Inspect code and plan minimal epics and correctly ordered task groups
ow-implement Execute ready work until completion or an actual human blocker
ow-review Check needs and regressions, remediate, and present compact results
ow-consolidate Promote durable knowledge and remove completed execution detail
ow-fast-forward Run the full workflow without confirmation/approval prompts
ow-onboard Infer candidate needs and map an existing codebase for confirmation

Harness invocation

Harness Initialization Invocation
OpenCode V2 ow init --harness opencode /ow-propose, /fast-forward, /onboard
Claude Code ow init --harness claude /ow-propose, /fast-forward, /onboard
Codex ow init --harness codex $ow-propose, $ow-fast-forward, $ow-onboard
Other Agent Skills hosts ow init --harness generic Host-specific skill selection

Add or update integrations later with ow init, or ow skills --harness NAME .... Both commands use the same version-aware installer. The same workflow is used everywhere; command adapters do not contain divergent process logic.

Needs are first-class

Each need records its actor, desired outcome, observable acceptance, human confirmation date, and latest verified implementation date.

Two independent state dimensions avoid confusing delivery with relevance:

  • Currency: current, retired.
  • Implementation: open, in-progress, review, approved.

A current/approved need still constrains every future design. Fast-forward acceptance records its origin; it is not mislabeled as human confirmation. An inferred need starts unconfirmed, and existing code is not assumed verified.

Spec designs contain authoritative many-to-many references to needs. Specs describe entities, UI modules, or cross-cutting capabilities; epics/tasks organize bounded implementation. Containment and prerequisite relationships are distinct. An epic can select a subset of its specs' needs as execution scope. Other linked needs remain regression constraints without requiring unrelated authorization. Compare actor, outcome, and acceptance before adding needs: a new command, mechanism, platform, or task is usually a spec detail for an existing outcome.

ow reopen N-001 resumes work under the same ID and resets authority to default. Only an explicit new fast-forward request enables it for the reopened revision.

Human-facing communication

Ask only questions whose answers can materially change the work; do not restate clear instructions as confirmation questions. Clarifications use numbered questions and two or three lettered choices, with (Recommended) before the preferred choice text:

1. N-001 already provides local monthly trends. Uploading raw records would
conflict with its local-only constraint. What should I do?
  A. (Recommended) Keep N-001 as-is. No new need or product modification.
  B. Add third-party upload and keep trends local. Revise N-001's allowed-domain exception.
  C. Add third-party upload and computation with local viewing. Revise N-001's constraint.

Final updates lead with need → spec → outcome, followed by verification and any blocker. ow summary N-001 provides that context; reporting only task IDs is insufficient.

Small artifacts, complete intent

  • OW-managed knowledge and planning: under 500 lines per artifact.
  • All current needs together: under 500 lines, default 6,000 estimated tokens.
  • Source: under 500 LOC soft target, under 1000 LOC hard maximum.
  • Data formats are exempt from source limits. Low-complexity source exceptions are exact paths with a rationale; they do not exempt OW knowledge artifacts.
  • Routine verification should finish within five minutes. Necessary slower checks are explicit, and missing verification never counts as success.
  • Latest summaries replace earlier ones. Git holds history; there is no required append-only journal, growing evidence archive, or duplicate needs ledger.

ow context derives the needs register and related spec statuses from authoritative records. ow context N-001 also lists affected contracts and work to retrieve. Agents read detailed designs only for the work at hand.

CLI

The CLI handles deterministic operations. The coding harness supplies reasoning, code execution, and semantic review; OW does not make model-provider API calls.

ow status                           # needs, linked specs, implementation progress
ow context                          # all current needs, including approved ones
ow context N-001 N-002              # plus affected spec/epic IDs
ow check                            # schema, links, cycles, ordering, size budgets
ow ready N-001 N-002                # ready work with spec/need context and blockers
ow summary N-001                    # outcomes, specs, work, and verification

Artifact scaffolding and decision recording are available to agents and humans:

ow new need N-001 --title "Monthly reconciliation"
ow new spec S-001 --title "Transaction export"
ow new epic E-001 --title "Export implementation"
# Fill templates and references before authorization.
ow authorize N-001 --by human        # one decision covers needs, design, and plan
ow reopen N-001                     # reuse a need when further work is necessary

Structured gates are revision-bound: changed need intent invalidates downstream authority, while updating task progress does not. Reviews are bound to the plan and repository content. The CLI records human decisions supplied by the harness; it does not authenticate a conversation or establish semantic correctness on its own.

--root PATH works before the subcommand; otherwise the project root is discovered from the current directory and its parents. check, status, and ready support --json. See ow --help and the installed openwish/artifacts.md for all commands.

Design and contribution

Run directly from a source checkout without installing:

PYTHONPATH=src python3 -m openwish --help
PYTHONPATH=src python3 -m unittest discover -s tests -v

This repository is developed directly; shipped skills live only in src/openwish/assets/skills/. Tests exercise OW in temporary projects rather than installing an active OW workflow into this checkout.

OpenWish 0.4.0 uses artifact schema 2. The v0.1 prototype's change records are superseded; see migration guidance. Integration files follow current host documentation; deterministic checks do not substitute for hands-on harness workflow validation. Licensed under MIT.

Metadata

Release files for openwish 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openwish 0.4.0
File Size Uploaded
openwish-0.4.0.tar.gz 75.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openwish 0.4.0
File Interpreter ABI Platform
openwish-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 129.2 kB

Release files / openwish-0.4.0.tar.gz

Download URL openwish-0.4.0.tar.gz
Size 75.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c50f2aeae51c24c565a35cf29c8cc4c67734eb2809e146229afb57271b5faabe
BLAKE2b-256 checksum
How to use checksums
727f3a877d0a5a8058a208b8aa2210e55c6583759255733af12fe613704048aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / openwish-0.4.0-py3-none-any.whl

Download URL openwish-0.4.0-py3-none-any.whl
Size 53.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fa97930df452c1c9f3b4f9e63c3c37b73a9c39abf55c6834d728d2d760d91a29
BLAKE2b-256 checksum
How to use checksums
597c37b80f46998dafabb8fd21c6743869e4c26766960b05d7062102e1e8d301
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

This release

0.4.0 This release

2 release files

0.3.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page