Documentation
How HorseCI works. What you need to know.
what it is
HorseCI is a managed CI service that replaces GitHub Actions runner and dispatcher. You run a worker binary on your machine. We route webhooks to it immediately.
Same YAML. Same workflows. Faster execution.
running the worker
The worker is a single binary. It connects to our dispatcher via WebSocket.
export HORSECI_TOKEN=your_token_here ./horseci-worker
The worker runs in the foreground. Use a process manager to keep it running.
# systemd example [Unit] Description=HorseCI Worker After=network.target [Service] ExecStart=/usr/local/bin/horseci-worker Environment=HORSECI_TOKEN=your_token Restart=always User=ci [Install] WantedBy=multi-user.target
workflow support
HorseCI supports a subset of GitHub Actions workflow syntax.
supported
on: push,on: pull_request,on: repository_dispatchjobs.(ignored, runs on your worker).runs-on steps[*].run— shell commandssteps[*].uses— GitHub Actions (partial)envat workflow and job leveldefaults.run.shell,defaults.run.working-directory
not supported
strategy.matrixservices(service containers)reusable-workflowscomposite actions- container jobs (use
steps[*].uses: docker://...instead)
secrets
Set secrets in your worker environment. The worker passes them to workflows.
export GITHUB_TOKEN=ghp_xxx export NPM_TOKEN=npm_xxx ./horseci-worker
Reference them in workflows:
steps:
- run: npm publish
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Secrets never leave your machine.
caching
HorseCI keeps the git workspace between runs on the same branch. Dependencies persist.
Manual cache control (save/restore actions) is not implemented yet.
- No service containers (PostgreSQL, Redis sidecars)
- No container jobs
- No matrix builds
- Marketplace actions work partially
- No Windows support (Linux, macOS only)
- No artifact uploads to GitHub
Need help? Email support@horseci.com.