cd /news/developer-tools/how-to-use-the-moshcode-cli · home topics developer-tools article
[ARTICLE · art-96769] src=anthony.dev.profullstack.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

How to Use the Moshcode CLI

Moshcode 0.56.0, a CLI tool that installs and drives multiple coding engines including opencode, Claude Code, codex, gemini, kimi, qwen, deepseek, and aider, is now available. The tool, described as a 'metal wrapper for coding engines,' adds persistent sessions, account sync, and a namespace for built projects. It requires Node.js 18 or newer and is installed via a script from moshcoding.com, with the home page at moshcode.sh.

read6 min views1 publishedAug 14, 2026

2026-08-14, by Anthony “chovy” Ettinger.

How this was written: drafted with an AI assistant from my notes and from the CLI's own help output, then checked against a real install. Commands below were run against moshcode 0.56.0.

What moshcode actually is #

moshcode calls itself “a metal wrapper for coding engines.” That is the honest description. It is not another coding agent competing with the ones you already use — it installs and drives them. opencode, Claude Code, codex, gemini, kimi, qwen, deepseek, aider and a few more all sit behind one command surface, so you stop memorising five different CLIs with five different flag conventions.

On top of that it adds the things you actually need around an agent: sessions that survive a closed terminal, an account you can sync settings to, and a namespace where you can park what you build. Home page is moshcode.sh.

Installing it #

curl -fsSL https://moshcoding.com/install.sh | sh

Yes, the site is moshcode.sh

and the installer is served from moshcoding.com

. They are two different properties and that trips people up. The install script is the one above.

It is zero-dependency ESM, so the only requirement is Node.js 18 or newer. The same script handles the other two lifecycle jobs:

curl -fsSL https://moshcoding.com/install.sh | sh -s -- update
curl -fsSL https://moshcoding.com/install.sh | sh -s -- remove

Do not put sudo in front of that. moshcode escalates on its own for the steps that genuinely need root. If you run the installer or an update as root, it installs into root's home directory instead of yours, and then you have two copies and a confusing afternoon. Run it as you.

Finding your way around #

Run it with no command at all and it opens the mosh pit — the interactive view. When you want the map instead:

moshcode help                # the groups
moshcode help <command>      # flags and examples for one
moshcode help --all          # the whole wall
moshcode help --json         # the same thing, for a script

The commands are grouped, which is the fastest way to understand the tool: engines (agents, install, upgrade), runtime (herd, ps, attach, kill, restore), tools (stocks, crypto, news, rss, trade), extend (mcp, skill, plugin), script (prd, commands, run), account (login, whoami, save, load), and hosting (dns, doh, site, template). There is also an arcade with twenty-two games in it, because of course there is.

That --json

flag is not decoration. Nearly every command takes it, which is what makes moshcode scriptable rather than merely interactive.

Driving an engine #

moshcode engines             # what exists, and what's installed here
moshcode install claude      # put one on this machine
moshcode agents              # engines and their status
moshcode agents claude       # open that engine's agent view

One warning, straight from the CLI's own help text: autonomous modes bypass approval prompts. Use them in a container or a workspace you trust, and not in the checkout you care about. That is not me being cautious for the sake of it — an agent that never asks is exactly as dangerous as it sounds.

The herd: sessions that outlive the terminal #

This is the feature I use most and the one that is hardest to appreciate until you have it. A herd session keeps running when you close the window.

moshcode herd start          # start a session, hand the prompt back
moshcode herd ps             # the roster and every session's state
moshcode attach              # get back into one
moshcode herd tile           # every member on screen at once
moshcode herd ui             # sidebar of members, selected one beside it
moshcode kill                # stop one
moshcode restore             # bring sessions back

Once you are running three or four agents at once, herd tile

and the roster stop being conveniences and start being the only way you keep track of anything.

Logging in #

An account lives at app.moshcode.sh and the CLI authenticates against it:

moshcode login               # browser flow
moshcode login --device      # device-code flow, for a headless box
moshcode whoami              # who am I currently
moshcode whoami --json       # same, for a script
moshcode logout

The device flow is the one you want over SSH; moshcode picks it automatically when stdin is not a TTY, but you can force it. Once you are signed in, your settings become portable:

moshcode save --dry-run      # what would go up
moshcode save                # push aliases + herd rules to your account
moshcode load                # pull them onto another machine

That is the whole reason to bother logging in: set a box up once, then moshcode load

on the next one instead of doing it all again.

Joining the Pit network #

The Pit, at app.moshcode.sh/pit, is the part people find strangest, so here is the plain version. It is a namespace that lives outside the traditional DNS root. You claim an ending — the moral equivalent of a TLD, something like .eggs

— on a first-come, first-served basis, and then you mint as many names under it as you like. Sign in with the same moshcode account the CLI uses, and claim one.

Because these names are not in the public DNS root, a normal machine has no idea what to do with them. That is what the dns

command is for:

sudo moshcode dns enable     # route Moshpit endings to the local bridge
moshcode dns status          # what's running, what's routed, does it work
moshcode dns resolve blue.eggs   # what a machine actually gets, and why
moshcode dns tlds            # every ending claimed in the Pit
moshcode dns refresh         # re-apply routing for endings claimed since

dns enable

is the one command here that genuinely does want sudo

, and the CLI says so itself — it is rewriting your machine's resolver configuration. This is worth typing deliberately rather than pasting on autopilot: it changes how everything on that box resolves names, so do it on a machine where you would be comfortable explaining what changed. It is reversible with dns disable

.

Then put something behind the name:

moshcode template list                     # available stacks
moshcode template install bun-caddy-sqlite # scaffold into the current dir
moshcode site                              # web-server config for a Moshpit name

If you would rather not touch your resolver at all, there is a DNS-over-HTTPS endpoint you can point a client at instead — moshcode help doh

covers it.

The bits nobody mentions #

Some of the most useful surface is filed under “tools” and easy to miss:

moshcode stocks

andmoshcode crypto

— market research from advis0r.com, straight in the terminal,--json

includedmoshcode news

andmoshcode rss

— feeds without a readermoshcode mcp

,skill

,plugin

— how you extend an engine rather than replace itmoshcode secrets

,railway

,gh

,supabase

,turso

— the adjacent tools it will install and drive for youmoshcode upgrade --check

— what is stale, without installing anything

A sensible first hour #

  • Install it with the curl line. No sudo. moshcode help

, thenmoshcode help herd

.moshcode install

whichever engine you already pay for.moshcode login

--device

if you are on a server.- Start one thing under herd start

and close the terminal on purpose. Reattach. That moment is when it clicks. - Only then go claim an ending in the Pit.

Leave dns enable

until you actually want to reach a Moshpit name from that machine. It is the one step with system-wide consequences, and there is no reason to take it on day one.

Written against moshcode 0.56.0; commands and flags move, so moshcode help <command>

is always more current than a blog post. Disclosure: I build moshcode, so I am hardly a neutral reviewer of it.

── more in #developer-tools 4 stories · sorted by recency
── more on @moshcode 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/how-to-use-the-moshc…] indexed:0 read:6min 2026-08-14 ·