# codsh 0.23.0 — Mission Contract: `/ship` that won't silently drift

> Source: <https://dev.to/blackman99/codsh-0230-mission-contract-ship-that-wont-silently-drift-1ca6>
> Published: 2026-09-17 01:23:56+00:00

**codsh** is a DeepSeek-native terminal coding agent on open [dsh](https://github.com/deepseek-ai/deepseek-harness). It is **not** a Claude Code env wrapper.

The hook stays the same: `/ship` takes one sentence to verified code.

**0.23.0** ships the **Mission Contract** control plane for that loop — so acceptance criteria stay sealed, drift blocks the run instead of rewriting the goal, and delivery needs recorded evidence.

When Gate 1 confirms the spec, `/ship` compiles a machine-checkable **Mission Contract** (`mission.contract.json`) from the sealed Main Track, Out of Scope, and acceptance criteria.

After seal:

Also in this release: **wayfinder** before the grill interview (destination + open decisions, separate from implementation), and tighter parent/subagent coordination — one parent-owned ticket per turn, fresh-context children for investigation / landing / review, parent keeps questions, gates, and final proofs.

npm: `codsh-cli` + `codsh-bundle` **0.23.0**.

Ad-hoc agent plans live in conversation memory. They drift. Acceptance becomes vibes.

`/ship` keeps the human projection in Markdown and the runner-owned contract on disk:

While work is in flight you get a **panorama**: TTY overlay (`Ctrl+G`), a ticket-count teaser with the local Web flowchart URL, and the flowchart itself — `/ship` does not auto-open a browser.

Coming from Claude Code / Codex? Different harness, different product. Redirecting Claude Code at DeepSeek with env vars works; this is the native path on dsh. Map what maps / what’s missing on [issue #64](https://github.com/Blackman99/codsh/issues/64).

`/ship` builds (gallery)
Every gallery project started from a **one-sentence** request. Real screenshots and playable results: [blackman99.github.io/codsh/gallery.html](https://blackman99.github.io/codsh/gallery.html)

*(Publishing: upload local PNGs from `/workspace/codsh-assets/gallery-0.23.0/` as cover + inline if Dev.to prefers hosted uploads.)*

```
npm install -g @deepseek-ai/dsh codsh-cli
export DEEPSEEK_API_KEY=…   # or any OpenAI-compatible route via ~/.dsh/settings.yaml
codsh
```

Node `≥22.19`. Already on a matching dsh? `npm i -g codsh-cli` is enough.

Then:

``` js
/ship let long diffs open in a pager instead of scrolling past
```

For tiny edits, plain chat or `⇧Tab` plan mode is enough — `/ship` is multi-phase and burns tokens on purpose.

`codsh-cli`` codsh-bundle`
Early project. Sharp edges welcome — especially Windows (#62) and third-party endpoints (#63).
