Install

What you must bring, how to install yothere from PyPI with pipx, and how to verify the machine before you pair it.

Beta · signup open

yothere is in open beta. Create your workspace at app.yothere.ai/signup, your first 7 days are free, no credit card. Then the Founding plan is $20/mo.

yothere ships as a single package on public PyPI. The core install is everything you need to pair a machine to the hosted cockpit and run agent turns on it: the CLI, the leaser that picks up queued jobs, the fleet runner, and the board. The optional surfaces (the MCP server, the LLM tiebreak) are extras, so you only pull the dependencies you use.

What you must bring

yothere is a cockpit, not a model. It never holds your model credentials and never bills you for inference. The agents run on your machine, on the subscription you already pay for.

Requirement Detail
A Mac or Linux machine Nothing else is supported. On Windows, run it under WSL2 (the systemd path).
Python 3.11, 3.12, or 3.13 The package declares >=3.11,<3.14, and yothere doctor hard-fails 3.14: the pinned media stack does not build there.
pipx Puts yothere in its own isolated environment and on your PATH.
Claude Code or the Codex CLI, logged in yothere drives whichever one you have. It never sees the credential.
A machine you can leave open Every turn runs here. Asleep means nothing advances.
Leave the laptop open. The hosted control plane runs zero agent compute. While your paired machine is asleep or closed, dispatched threads sit in the queue and drain the moment it reconnects. Nothing is lost, and nothing advances either.

Install pipx first if you do not have it:

brew install pipx        # or: python3 -m pip install --user pipx
pipx ensurepath

pipx is the recommended installer because it is persistent. pipx run and uvx cache their environments and can be garbage-collected out from under a long-running yothere service, which is exactly the process that must not disappear.

Install from PyPI

pipx install yothere

That is enough to pair the machine, lease jobs from the hosted cockpit, run each turn locally, spawn threads, and glance at the board. No API keys are required. Pairing runs a browser device flow: yothere login prints a short pairing code plus a link to app.yothere.ai/activate, where you confirm which machine is asking and pick its permission tier, then the CLI saves the per-device credential (no token is pasted). A headless or SSH-only box pairs the same way: run yothere login on the box and open the printed link in a browser on any device. For unattended provisioning, an operator can mint a single-use token on the control plane with yothere admin pair-token and redeem it via yothere login --url <cp> --token <t>. The Quickstart walks the whole path.

Note yothere keeps its state under ~/.yothere: threads, data, state, and logs. YOTHERE_HOME moves that root. Your device credential is the exception: it lives at ~/.yothere/credentials.json (mode 0600) and follows YOTHERE_CREDENTIALS, not YOTHERE_HOME, so pointing YOTHERE_HOME somewhere else leaves the credential where it was.

Verify

Confirm what you installed:

yothere --version    # the installed version
yothere --help       # the command surface
pipx list            # the package, its Python, and its console scripts

We deliberately keep version numbers out of these docs, since a pinned number goes stale. Compare what you see against the current release on the PyPI project page, or run pip show yothere.

Then check the machine itself. doctor reports pass, warn, or fail per check, with the fix for each one: your Python version and whether it is in an ephemeral cache, the ~/.yothere layout and its writability, which brain resolves (your Claude Code or Codex CLI, and whether it is authenticated), the service unit, and your notifier.

yothere doctor
yothere doctor --json      # machine-readable
yothere doctor --bundle    # a support bundle to send us

For an end-to-end check, run the bundled zero-key demo. It spawns a thread and drives it through the real runner to completion in about 30 seconds, with no API keys and no account:

yothere init --demo

See the Quickstart for what the demo does and what comes after it.

Optional extras

Install extras with the bracket syntax. Quote the argument so your shell does not interpret the brackets.

Extra Install What it adds
mcp pipx install 'yothere[mcp]' The MCP server surface, so any MCP client can drive a fleet. See the yothere-mcp note below.
llm pipx install 'yothere[llm]' An optional LLM tiebreak for routing and scope classification. A deterministic fallback is used otherwise.
Note The package carries further extras (web, postgres, voice) that the hosted service and yothere's own development use. You do not need them. Voice in particular is hosted: you click Connect in the cockpit and talk in the browser, with nothing to install and no key to bring.
Note The yothere-mcp console script is installed by the core package, but it needs the mcp extra's dependency to actually run. The tool logic lives in SDK-free helpers, so it imports and tests without the extra; the extra is what lets the server serve.

Upgrading

pipx upgrade yothere

If a new release adds dependencies for an extra you rely on, reinstall it with pipx install --force 'yothere[mcp]'. Your state under ~/.yothere is untouched by an upgrade.

Install from source

There is no public clone URL. A source install requires access to the private beta repository, which stays private during the beta. Unless you are developing yothere itself and have been granted access, pipx install yothere from public PyPI is the path: it is the primary, public, and verifiable way to install. See Trust and provenance for how to verify the package.

If you do have repository access, add extras to an editable install with the bracket syntax, for example pip install -e '.[mcp]'.

Next steps

  • Quickstart: pair this machine, start the leaser, hail your first task.
  • Onboarding: the same path with the cockpit’s checklist walking each step.
  • Configuration: every YOTHERE_* environment seam.
  • CLI reference: every command and flag.