Build on your machine
Create and run a Contrast project from your terminal, with your own coding agent.
Every Contrast project is a normal repository you can run on your own machine.
The contrast CLI creates one from a template and runs the whole stack
locally, so you can work in your editor, with your own coding agent, or both.
Install
It works on macOS and Linux and needs no sudo. It installs the contrast
and peach commands into ~/.local/bin and adds that folder to your shell’s
PATH. If this machine has no bun it installs bun, and if it
has no Node.js it installs Node.js 24, which Contrast projects run on.
Open a new terminal afterwards so the commands are on your PATH.
Create and run a project
contrast create asks which template to start from: App (web and iOS,
with sign-in and synced data), Game, or Website. Pass
--template app, game, or website to skip the question. It installs the
dependencies and makes the first git commit, so you start from a clean,
working tree.
contrast dev starts the web app and, for projects with an iOS app, Metro for
the iOS preview, then prints the web address. It reloads as you save.
Set it up with your agent
Paste this into Claude Code, Codex, or another coding agent, started in an empty folder:
The agent installs the CLI, creates the project in place, starts it, and
checks that it renders. Every project carries an AGENTS.md that explains its
structure and how to run and check it, and Claude Code and Codex read it on
their own. Change app to game or website for the other templates.
Check your work
Run these from the project folder while contrast dev is running:
contrast shotsaves a screenshot of the web app, or of one route withcontrast shot /settings. It exits with an error when the page logged one, so an agent can use it as a check.contrast iosopens the app in an iOS simulator in your browser, rendered by peach.peach describe,peach screenshot, andpeach get errorsinspect what is on screen.bunx tsc --noEmittypechecks the project.
Put it online
contrast login signs you in through the browser. contrast link --create
uploads the project to your Contrast account and records it in
contrast.json, so you can also open it in the Dev space.
contrast deploy builds it and puts it on a live URL.
To hand the whole workspace, chat and agent squad included, to your own agent instead, see Drive with your own agent.