Skip to content

Quickstart

This takes you from an empty machine to an agent doing work on your files. Follow it in order — a fresh server has no model and no runtime, and a session cannot run a turn without both.

You will need Docker, and an API key for a model provider.

From a checkout of the repository:

Terminal window
git clone https://github.com/blossomstack/horsie
cd horsie
docker compose -f docker/docker-compose.yml up -d

The server and the web UI come up together on port 3789. There is no external database to provision and no config file to write; data persists in a horsie-data Docker volume.

The first boot creates an admin account and generates a password for it:

Terminal window
docker compose -f docker/docker-compose.yml logs horsie | grep -A4 'admin account'

The same password is written to initial-admin-password in the server’s state directory, so a rotated log is not a lockout.

Open http://localhost:3789 and sign in as admin.

Go to Settings → Models.

  1. Under Providers, add one. Give it a name, pick a kind — start with Anthropic or OpenAI-compatible — and paste your API key.
  2. Under Models, add one. Give it an alias you will recognise in a dropdown, pick the provider you just made, and enter the provider’s own model id.
  3. Press Save changes. The Models page batches its edits, so nothing is stored until you do.

On the machine holding the code you want the agent to work on — which may be this same machine — install the CLI and connect it:

Terminal window
curl -fsSL https://get.horsie.dev | sh
horsie auth login --server http://localhost:3789
horsie connect --server http://localhost:3789 --workspace .

horsie auth login prints a URL and an eight-character code. Open the URL, check the code matches, and approve.

horsie connect registers the current directory as a workspace and holds a connection open to the server. Leave it running — sessions can reach this machine only while it is up. It appears under Settings → Runtimes within a second or two of dialing in.

Back in the browser, press New.

The row of controls above the composer is the session’s configuration. Pick your model, and pick your machine under Environment. Then type a message and send it — the session is created when you send the first message, not when you press New.

Ask it something that requires looking around, so you can watch a tool call:

What does this project do? Read the README and the top-level directories.

The reply streams in. Tool calls appear as rows you can expand to see the exact input and the raw output. Press the red Stop key to interrupt a run mid-turn.

You now have a working server, but it is doing the least it can: