
# Getting started

JCode runs your coding agents on your machine and gives you a mobile, desktop, web, and CLI client to drive them from anywhere. Desktop is the primary installation path; headless EOS and Docker installs are available for advanced deployments.

## Desktop app (recommended)

Download from [jcode.vpnla.pro/download](https://jcode.vpnla.pro/download). Open it and you're done.

The desktop app bundles its own daemon and starts it automatically, no separate install required. It also carries verified runtimes for remote hosts: use **Set up over SSH** to install or update a remote daemon without downloading installation bytes on that host, then use **Check, edit, or repair** when a newer Desktop release should take over or upgrade it. On first launch you'll see a brief startup screen, then connect from your phone using **Settings → your host → Connections → Pair a device**.

## Server / CLI (advanced)

When Desktop's SSH setup is unavailable or unsuitable, run the public EOS installer manually from the host console, cloud-init, or another management channel:

```bash
curl -fsSL https://objects.eos.chengdu-7.cmecloud.cn/jcode/runtime/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
jcode
```

JCode prints a QR code in the terminal. Scan it from the mobile app, or enter the daemon address manually from another client. EOS-installed runtimes can update themselves from the public feed; Desktop-managed runtimes are upgraded through **Check, edit, or repair** instead.

The daemon can also serve the browser web app itself, so you can use the full UI without the hosted app. See [Self-hosting the web UI](/docs/web-ui).

Configuration and local state live under `JCODE_HOME` (defaults to `~/.jcode`).

## Docker

For servers, dev boxes, NAS devices, or homelab hosts, build the image locally:

```bash
docker build -f docker/base/Dockerfile -t jcode:local .
docker run -d --name jcode \
  -p 6767:6767 \
  -e JCODE_PASSWORD=change-me \
  -v "$PWD/jcode-home:/home/jcode" \
  -v "$PWD:/workspace" \
  jcode:local
```

Then open `http://localhost:6767`.

The image runs the daemon and serves the bundled web UI. It does not bundle agent CLIs, so extend it with the agents you use. See [Docker](/docs/docker) for Compose, reverse proxy, agent install, and security examples.

## Where next

- [Docker](/docs/docker), run the daemon and bundled web UI in a container.
- [Workspaces](/docs/workspaces), the project, workspace, and session model JCode is built around.
- [Providers](/docs/providers), what a provider is and how JCode wraps existing CLIs.
- [Orchestration](/docs/orchestration), let one agent delegate work to other providers and models.
- [CLI reference](/docs/cli), every command.
- [Self-hosting the web UI](/docs/web-ui), serve the browser app from your own daemon.
- [GitHub repo](https://github.com/jcode/jcode)
- [Report an issue](https://github.com/jcode/jcode/issues)

## Prerequisites

JCode manages other agents, it doesn't ship one. Before it's useful, install at least one provider CLI yourself and make sure it works with your credentials. See [Supported providers](/docs/supported-providers) for the full list.

You'll also want the [GitHub CLI](https://cli.github.com/) (`gh`) installed and authenticated, JCode uses it for PR-aware worktrees and a few orchestration features.
