Ocean Code
Quickstart
Install Ocean Code, sign in, start a session in the terminal, and know where it keeps its files.
Ocean Code is two self-contained binaries installed side by side: the engine oceancode and the terminal UI ocean-pager it launches. There is no Node, no Python and no daemon.
- Install
A release tarball carries both binaries and an
install.shthat checks every file against its checksum, clears the download quarantine and installs into~/.local/bin(setOC_INSTALL_DIRfor another folder). If that folder is not on yourPATH, the installer prints the line to add.tar -xzf oceancode-<version>-macos-aarch64.tar.gz cd oceancode-<version>-macos-aarch64 && sh install.sh oceancode --versionFrom a checkout,
cargo install --locked --path crates/ocean-clibuilds and installs it with the Rust toolchain alone. Later,oceancode updatefetches the newest release for your channel, verifies it and swaps both binaries atomically, rolling back on failure. The channels, the signature and checksum trust model andoceancode verify-releaseare in the distribution reference. - Sign in once
oceancode auth # interactive: an API key or a Claude Pro/Max subscription oceancode login # Claude Pro/Max subscription, non-interactive oceancode key <key> # store an Anthropic API key oceancode key openai <key> # another provider's key, same file oceancode login --provider ocean # your Plunge account, through the browserThe credential is written to
auth.jsonin the data directory and reused on every later run; a Plunge sign-in keeps its refresh token in the macOS keychain and never prints a token.oceancode keyalone reports what is stored. With a Plunge sign-in, model calls go through the gateway (ocean/<provider>/<model>) and are billed to your account's wallet; see platform mode. - Start a session
cd your-project oceancodePlain
oceancodeopens Ocean pager on a fresh session in the current folder. Type at the prompt.Shift+Tabcycles the agent: Build, then Auto (edits run without a card), Plan, Ask and Debug; the prompt border names the current one.F4opens the work-mode picker./resumelists earlier sessions in this folder; from any folder,oceancode resume <code>reopens a session by its four-character code or by words from its title (sessions together). - Or run it headless
oceancode run "summarise the README" # one job, then exit oceancode serve # the HTTP surface on port 4096 oceancode acp # the engine as an editor agent on stdin/stdoutrunprints the result and exits with a typed code;serveexposes sessions, prompts and status over HTTP for your own tooling;acpis what Xcode and Zed launch (editors). Every subcommand with its flags is in the CLI reference, the routes in the HTTP API.
Where files live
Paths follow the XDG layout on every platform, macOS included (~/.config, not ~/Library).
| What | Location |
|---|---|
| Global config | ~/.config/oceancode/oceancode.json (or $OC_CONFIG) |
| Credentials | ~/.local/share/oceancode/auth.json |
| Session store | oceancode.db in the folder you started in, unless --db <path> is given |
| Session transcripts and ledger pages | ~/.local/share/oceancode/session-ledger/<session-id>/ |
| Project config, skills and plans | <project>/.oceancode/ (oceancode.jsonc, skills/, plans/) |
| The pager's own settings | ~/.local/share/oceancode/pager/config.toml |
A project's CLAUDE.md or AGENTS.md, its .claude/skills/, Cursor rules and MCP servers are found and loaded as they are; nothing has to be rewritten for Ocean Code (capabilities, MCP servers). Every config key and environment variable has a row in the configuration reference.
A repository in Ocean Git, without a clone
A folder can work on a repository that lives in Ocean Git with nothing checked out:
oceancode workspace init ocean-git://<repo>@<branch> my-work --handle <handle>
cd my-work && oceancodeThe agent's read, glob, grep and apply_patch go through Ocean Git; materialize fetches the files a build or a test needs onto disk; land commits the changes back as one commit, from the agent or with oceancode workspace land -m "…". A workspace of 1.8 MB stands in for a 630 MB clone. Details in the CLI reference.
Next
- Sessions that keep the thread: what happens when a session grows long.
- Long runs and sub-agents: bounds, the plan, the dock.
- Away from the Mac: answer from Slack.