# Get started

> Set up ModernCI today: paste one line into your coding agent, or run the daemon by hand. Self-hosted, and connecting to modernci.dev is optional.

Every install is a complete daemon and never needs the cloud. Connecting to modernci.dev is optional and outbound only: one view of many daemons.

## Set it up today: paste this into your coding agent

```
Read https://modernci.dev/llms.txt and set up ModernCI on this repo.
```

Works with Claude Code, Codex, or any agent that can run commands. The runbook your agent follows: [Deploy ModernCI with your agent](https://modernci.dev/docs/agents.md).

## Or by hand: three commands (preview)

In use on our own repos today. Self-host release: follow the changelog.

1. Run the daemon (preview). One Rust binary in a Docker image: the loop, the store, secrets, the UI and the operator MCP.
   `docker run -p 8080:8080 -v mci:/data modernci/modernci`
2. Register a repo (preview). GitHub, GitLab, Gitea or Forgejo. You give it a token once.
   `modernci repo add you/your-repo`
3. Point a machine at it (preview). Any laptop or server becomes a backend, an agent host, or both. It connects out, so no open port.
   `modernci host join https://ci.your.lan`

On GitHub Actions now? `modernci import .github/workflows/ci.yml` writes the branch file, then judges beside your old CI until the verdicts agree.

## Connect (optional): one view of many daemons

```
modernci cloud connect
```

Sign in with your forge. The daemon opens one outbound link to your modernci.dev tenant and shows up on the Fleet page. If the cloud is down, the daemon carries on and catches up when the link returns.

- Up the link: usage records, a status summary (moves, alarms, cost per merged change) and health.
- Down the link: ladder, prompt and hook edits made in the cloud UI. The daemon applies a change only if it validates.
- Never, by default: code, logs and secrets. A log you open from the cloud streams through the link on demand.
