shipcode-cli
v0.6.1
Published
AI-powered coding assistant for your terminal. Model-agnostic, personality-driven, limitless. The terminal control layer for MakeShipHappen.
Maintainers
Readme
ShipCode
Plain-language coding from your terminal, powered by any AI model you want.

Why ShipCode
Model-agnostic. Point it at Ollama for free local inference, Claude for best-in-class reasoning, GPT for broad capability, Groq for speed, Gemini for massive context, or OpenRouter for everything at once. ShipCode doesn't care which model you use — it just ships code.
Limitless. Configure a fallback chain and ShipCode never hits a wall. Claude rate-limited? Jump to Groq. Groq down? Drop to local Ollama. Your flow never stops because one provider had a bad day.
Real file editing. ShipCode isn't a chat toy. The AI proposes structured shipcode-write and shipcode-edit blocks, shows you a diff, and waits for your approval before touching disk. You stay in control of every keystroke that lands in your repo.
Install
npm install -g shipcode-cliQuick Start
shipcode setup # configure your AI provider
shipcode # open interactive shellHow It Works
╔═══════════════════════════════════════════╗
║ ShipCode · v0.5.0 ║
║ provider: anthropic → groq → ollama ║
║ model: claude-sonnet-4.6 ║
╚═══════════════════════════════════════════╝
you > create src/utils/format-date.ts with a formatDate(date) helper
ai > Sure — here's a small helper that handles ISO strings and
Date objects, with a sensible default format.
```shipcode-write path="src/utils/format-date.ts"
export function formatDate(input: string | Date): string {
const d = typeof input === 'string' ? new Date(input) : input;
return d.toISOString().slice(0, 10);
}
```
+ src/utils/format-date.ts (new file, 4 lines)
Apply this change? [y/n] y
✓ Wrote src/utils/format-date.ts
you > _Commands
| Command | Description |
|---|---|
| shipcode | Interactive AI shell |
| shipcode setup | Configure providers and API keys |
| shipcode chat "question" | One-shot AI query |
| shipcode chat "question" -f file.ts | Query with file context |
| shipcode doctor | Environment and provider health checks |
| shipcode status | Project and provider status |
| shipcode migrate | Import sources (directory, notion, obsidian, github) |
| shipcode init | Initialize a project directory |
| shipcode benchmark | Run performance benchmarks |
| shipcode whoami | Show current account and tier |
Inside the interactive shell:
| Slash command | Description |
|---|---|
| /context file.ts | Add a file to the conversation |
| /provider anthropic | Switch providers mid-session |
| /chain | View or edit the fallback chain |
| /save name | Save the current session |
| /load name | Restore a saved session |
| /exit | Leave the shell |
The Limitless Fallback Chain
Every provider has a bad day. Rate limits kick in at the worst moment, the API throws a 500, or you're on a plane with no WiFi. ShipCode's fallback chain means you don't care.
Configure a chain and ShipCode walks it top to bottom on every request. If one link fails, it silently moves to the next. Put a local Ollama model at the bottom and you have a free, offline safety net forever.
# ~/.shipcode/config.toml
[chain]
order = ["anthropic", "groq", "ollama"]
[providers.anthropic]
model = "claude-sonnet-4.6"
[providers.groq]
model = "llama-3.3-70b-versatile"
[providers.ollama]
model = "llama3.1:8b"File Operations
When ShipCode wants to touch your files, it doesn't just do it. It proposes.
shipcode-write — create or overwrite a file:
```shipcode-write path="src/hello.ts"
export const hello = () => 'world';
```shipcode-edit — patch an existing file with a diff:
```shipcode-edit path="src/hello.ts"
- export const hello = () => 'world';
+ export const hello = (name: string) => `hello, ${name}`;
```ShipCode renders the diff, asks [y/n], and only writes if you approve. Say no and the suggestion evaporates.
Providers
| Provider | Models | Use Case | Cost | |---|---|---|---| | Ollama | llama3.1, gemma4, qwen2.5-coder, etc. | Privacy-first, offline, unlimited | Free (local) | | Anthropic | Claude Sonnet 4.6, Opus 4.7 | Best-in-class reasoning and code | Cloud API | | OpenAI | GPT-4o, GPT-4.1, o3-mini | Broad capability, reliable | Cloud API | | Groq | Llama 3.3 70B, Mixtral 8x7B | Ultra-fast inference | Cloud API | | Gemini | 2.0 Flash, 2.5 Pro | Massive context windows | Cloud API | | OpenRouter | Hundreds of models | One key, every model | Cloud API |
Mix and match. Stack them in a chain. ShipCode doesn't care.
Part of MakeShipHappen
ShipCode is the terminal layer of the MakeShipHappen suite:
- ShipSpace — AI-native development environment
- ShipMind — second brain for notes, code, and context
- ShipTalk — voice-to-text, everywhere on your Mac
- ShipCode — this tool
Four tools, one account, one subscription.
Pricing
- Free — 5 AI messages per month, every provider you bring (unlimited Ollama).
- Pro — $29/mo, unlimited AI messages, every feature.
- Team — $79/mo, 10 seats, shared billing.
License
MIT
