Shipyardbuild · review · distributelogin · signup
Install Shipyard

Ship your project from the terminal with the Shipyard CLI

The Shipyard CLI is open source. Install it, post a project with one command, and let your coding agent do it for you. Here's the whole loop.

I build a lot of small things. Most of them never get seen by anyone, because the gap between "it works on my machine" and "it's posted somewhere people will look" is full of friction. Open a browser, find the submit form, fill in the title, the pitch, the URL, drag in a screenshot, pick a category. Every time.

So we made that a single command instead. The Shipyard CLI is open source, it lives at github.com/jonnonz1/goshipyard, and the point of this post is to show you the whole loop: install it, post something, and then hand the whole job to your coding agent so you never touch the form again.

Install it in one line

The install script detects your OS and architecture and grabs the matching prebuilt binary from the latest GitHub release:

curl -fsSL https://raw.githubusercontent.com/jonnonz1/goshipyard/main/install.sh | sh

That drops a single shipyard binary into /usr/local/bin (override with SHIPYARD_INSTALL_DIR if you keep your binaries elsewhere). No runtime to install, no node_modules, nothing to keep updated by hand.

Then authenticate. Create a personal API key in the web app under Settings → API keys, and:

shipyard login

The key gets saved to ~/.config/shipyard. You can also pass it per-command with --api-key, or set SHIPYARD_API_KEY in your shell, which is what you'll want in CI.

Post a project without leaving the terminal

Here's the part that replaces the form. Say I just finished a little thing called Foglight:

shipyard projects create \
  -t Foglight \
  -p "Offline-first maps for trail runners" \
  -u https://foglight.app \
  -c devtools

That returns the project, including its id. Attach a couple of screenshots:

shipyard projects set-images <id> ./hero.png ./detail.png

And that's it, it's live. From here every other thing you'd do in the web app is a subcommand:

shipyard projects list --mine        # what have I posted
shipyard reviews list <id>           # what are people saying
shipyard like <id>                   # upvote something you rate
shipyard wallet                      # credit balance

Add --json to any of those and you get machine-readable output instead of the pretty version, so you can pipe it straight into jq:

shipyard projects list --mine --json | jq '.data[].title'

Nothing here is CLI-only magic, by the way. The binary is a thin client over a plain REST API at /api/v1, and there's an OpenAPI spec in the repo. If you'd rather curl the endpoints directly or generate a client in your own language, go for it. The CLI is just the ergonomic path.

The bit I actually use: let the agent do it

I spend most of my day in Claude Code. I did not want to context-switch out to a terminal tab to run shipyard projects create either. So the CLI ships with agent skills, and you install them with:

shipyard skills install

That writes a skill into the right place for your setup: .claude for Claude Code, the Cursor rules file for Cursor, or an AGENTS.md section for anything else that reads one. The skill teaches the agent the CLI surface, so now the flow looks like this:

me: "Foglight's done, the screenshot's at ./hero.png. Post it to Shipyard, devtools category."

And the agent runs the commands. It creates the project, attaches the image, and tells me the URL. I never see a form. When I push an update a week later, "post a note that offline tiles are now cached" turns into a review/update without me remembering any syntax.

This is the part I'd push you to try even if you ignore everything else. Vibe-coding already moved the building into a conversation with an agent. Distribution should live in the same place. The skill is what closes that loop.

What it won't do

Worth being straight about the edges. The CLI posts and manages your own projects and upvotes other people's; it is not a growth-hack machine. It won't write your pitch for you (the agent might, but that's the agent, not the CLI), and it won't get you reviews, those come from real people on the site. Funding a paid review bounty needs wallet credit, which is the one place real money is involved. Everything else, posting, listing, reviewing, liking, is free.

It's also young. Version is still in the 0.x range, the command set covers the core nouns (projects, reviews, likes, wallet, skills) and not much more yet. If something's missing, the repo is public and the issues are open.

Try it

If you've got something sitting in a folder that nobody's seen:

curl -fsSL https://raw.githubusercontent.com/jonnonz1/goshipyard/main/install.sh | sh
shipyard login
shipyard skills install

Then tell your agent to post it. That's the shortest path I know from "it works on my machine" to "it's somewhere people will actually find it."

Frequently asked questions

Is the Shipyard CLI free and open source?

Yes. The CLI, the install script and the agent skills live in the public jonnonz1/goshipyard repo. Posting projects and reviews is free; you only add wallet credit if you want to fund paid review bounties.

How do I install the Shipyard CLI?

Run curl -fsSL https://raw.githubusercontent.com/jonnonz1/goshipyard/main/install.sh | sh. It detects your OS and architecture and drops a single binary in /usr/local/bin. Then run shipyard login with an API key from Settings.

Can an AI coding agent post to Shipyard for me?

Yes. Run shipyard skills install to add a skill for Claude Code, Cursor, or any agent that reads AGENTS.md. The agent learns the CLI and can create the project, attach screenshots and post updates on your behalf.

Dev Okafor
Dev Okafor — Vibe-coding & tooling

Dev covers the craft of building with AI — agents, CLIs, prompts and the workflows that turn a weekend idea into something shipped. One of the Shipyard team's writing voices, he's happiest in a terminal and allergic to ceremony.