Skip to main content

Quickstart

PreviewShips in the preview channel only. Not a stable release.

Install Harmony, sign in once, send a repository to a cloud workspace, stack prompts, bring the result home.

1. Install Harmony

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

Runs entirely on your machine. No account, no signup. Everything below is optional. Core stays free even if you never continue.

Windows: see installation.

2. Sign in from the app or the terminal

In the desktop app: Settings → Account & Cloud → Sign in. From a terminal:

harmony cloud login

Both open the website, where you approve this device. The device receives a token of its own; your password never enters the app, and the token can be revoked from Account → Devices at any time.

Away from that computer, you can sign in on the website itself and use Harmony in a browser — a tab, or an installed web app where the browser offers it. Same account; not the desktop workspace.

3. Start the trial or subscribe — on the website, as two different actions

Cloud hours come from the website, not from the desktop.

Trial is not granted by visiting a URL. ideharmony.com/cloud/start only routes you: if Cloud is enabled it sends you to sign-in (when needed) and then to Account → Cloud. A GET does not create hours. On that account page, use the explicit trial control if you are eligible (once per account, no card). Feature flags can hide the trial; a 404 on /cloud/start means Cloud is not offered in this environment.

Paid Cloud is a separate checkout. Monthly and annual offers are started from Account → Cloud or pricing after you choose an interval. Checkout is configured only when paid-plan flags and matching Stripe Cloud prices are present; otherwise the site will not sell. Returning from Stripe is not access by itself — entitlement updates when billing fulfilment completes. The app never takes a card.

Current figures live only on pricing.

4. Send a repository

In Settings → Account & Cloud → Cloud workspaces, choose Send to cloud and point it at a repository. Before anything leaves your machine you see:

  • the base commit the workspace will start from,
  • the staged and unstaged changes that go with it,
  • every untracked file offered, and
  • every file that was refused — known patterns such as SSH keys, cloud credentials, .env files, key material. The refusal happens when the transfer is built; there is no flag to override those blocks.

Confirm, and Harmony declares the transfer, uploads exactly the declared files (each one hash-checked on arrival), seals it, and starts a workspace that restores that snapshot.

This is not a scan of every possible secret. Files you confirm will leave. Files matching the known-sensitive path list will not. Review the list.

NOTE

A transfer carries patches and a fingerprint of the repository — never its URL and never a credential. So the workspace needs to know where to clone from: add HARMONY_REPO_URL (and, for private repositories, a read-only deploy key as HARMONY_GIT_SSH_KEY) on Account → Secrets. Without them the workspace waits and says so.

5. Sign your agent in — once per workspace, on that machine

A workspace comes with Claude Code and Codex CLI installed and signed out. Open Terminal on the workspace and sign in with the subscription you already pay for:

# Claude Code — vendor CLI, on the workspace
claude

# Codex CLI — vendor CLI, on the workspace
codex login

Each opens its own provider login. Harmony is not involved in it: the credential is created by the provider on that machine, never passes through our servers, and is never typed into a Harmony screen. Directories those agents store credentials in are excluded from bring-home captures. Deleting the workspace deletes the credential. Model charges stay with that provider; Harmony bills Agent Hours.

You do not have to do this. A workspace with no agent signed in is a remote machine with your repository and a terminal, and everything below still works except an agent working the queue on its own.

NOTE

Do not put a provider API key in Account → Secrets. That store refuses provider-key names on purpose. Sign in with claude / codex login inside the workspace so the vendor CLI holds the credential on that machine. Account → Secrets is only for the clone/deploy values you choose to add; it is not a model-key vault.

6. Stack prompts — human review still applies

Open Prompts on a workspace and add as many as you like. They are stored on the server and your signed-in agent works them in order, one at a time, whether or not this computer is awake. Cancel any queued prompt before it starts. With no agent signed in they simply wait, and nothing is charged for them beyond the machine time.

Cloud does not skip approvals. Bring-home still requires you to choose a strategy that cannot overwrite local work. Agent-reported success is not evidence.

7. Watch it

Terminal on a workspace opens a shell inside it. The connection is a scoped credential minted for this device and this workspace only; it is revoked when the workspace pauses.

You can also watch jobs from Account in a browser. If the device goes offline, reload after you reconnect — the web app does not keep private job pages or queue commands. See Use Harmony in a browser.

8. Pause when you are done

Pause stops the hours. The filesystem is kept. Resume picks up where it left off. From a terminal:

harmony cloud ls
harmony cloud pause <workspaceId>
harmony cloud resume <workspaceId>

9. Bring it home

Bring home on a workspace asks it for its work; it answers within about a minute. Harmony then looks at your local repository and tells you what changed since you sent it — nothing, uncommitted edits, a moved branch, or a different repository — and offers only the ways of bringing the work back that cannot overwrite what you have:

  • Apply onto the working tree — only when nothing changed locally.
  • Check out into a new sibling worktree — always safe; your tree is untouched.
  • Export the patch — writes the patch and new files under .harmony/bring-home/ and stops.

There is no force option. From a terminal:

harmony cloud bring-home <workspaceId> --request
harmony cloud bring-home <workspaceId> --repo . --strategy patch_export

h harmony cloud bring-home --request harmony cloud bring-home --repo . --strategy patch_export