Updated September 30, 2026. Switch a repository to Sengi by changing runs-on in your workflows, yourself or with the Sengi prompt in your coding agent. Everything else in your workflows stays exactly as it is.
Connect GitHub · Agent prompt · Help · Service terms
- Install the App and connect the repository
- Edit runs-on yourself and push
- Or let your coding agent do it
- What the runner looks like from inside a job
- Watch the result, usage and history
- Pricing and the free allowance
- Stop running jobs on Sengi
- Supported labels and platforms
Install the App and connect the repository
Sign in to Sengi and choose your project. You need permission to manage GitHub connections in that project. Signing in with GitHub does not install the Sengi App.
Choose Set up GitHub connection to install the Sengi GitHub App on the personal account or organization that owns the repository. Choose Only select repositories to limit its access. The account or organization owner may have to approve the App. Connecting the installation to your project is what lets Sengi run that repository's jobs, at any of the runner sizes below; the connections page lists the repositories and the labels you can use.
Edit runs-on yourself and push
The edit is one line per job. A job's runs-on: ubuntu-latest, runs-on: ubuntu-24.04 or your current provider's label becomes one of the three Sengi labels:
jobs:
build:
runs-on: sengi-standard-4-ubuntu-2404
steps:
- uses: actions/checkout@v5
- run: npm ci
- run: npm testNothing else in the job changes: steps, services, env, permissions, timeout-minutes and your triggers are untouched. Push and merge it through your own review; existing branch rules and approvals still apply.
| Runner label | What the job gets | Disk | Free at job start |
|---|---|---|---|
sengi-standard-2-ubuntu-2404 | 2 vCPU, 8 GB memory | 75 GiB | 12 GB |
sengi-standard-4-ubuntu-2404 | 4 vCPU, 16 GB memory | 150 GiB | 85 GB |
sengi-standard-8-ubuntu-2404 | 8 vCPU, 32 GB memory | 200 GiB | 133 GB |
The disk column is the volume the runner is given; the last column is what the runner reported free on / and on $RUNNER_TEMP when a job started, read on September 13, 2026. The image and its tool cache take the difference, so plan a sengi-standard-2-ubuntu-2404 job around roughly 12 GB for your checkout, caches and build output. The 4 vCPU size was read on September 14, 2026. A runner also sees a little less memory than it is given: 7 GB on the 2 vCPU size and 31 GB on the 8 vCPU size.
Memory is a hard limit, not a soft one. A job that exhausts its runner's memory is ended by the host before the guest's own out-of-memory killer gets to act (measured on all three sizes on September 14, 2026), so GitHub shows that job as failed or cancelled rather than as an out-of-memory step; run it again on the next size up.
Write exactly one of these three labels, literally, as the whole value of runs-on. All three are Ubuntu 24.04 x64 from the same image. If your repository lints workflows with actionlint, declare the label you use in .github/actionlint.yaml first, or that check fails before the job ever reaches Sengi.
Or let your coding agent do it
Copy the Sengi prompt into Claude Code, Codex, Cursor or another coding agent with access to the repository, or fetch it with curl -s https://sengi.run/agent.md. It finds the jobs Sengi can run, changes only their runs-on lines and opens a pull request you review and merge. It does not connect GitHub for you: install and connect the App first.
What the runner looks like from inside a job
Each job gets its own fresh virtual machine running an ordinary self-hosted Actions runner, and the machine is destroyed afterwards. A job on the 2 vCPU and the 8 vCPU sizes reported these values on September 13, 2026:
| What your job reads | Value |
|---|---|
runner.os | Linux |
runner.arch | X64 |
RUNNER_ENVIRONMENT | self-hosted |
ImageOS | ubuntu24 |
ImageVersion | 20260910.1.0 |
/etc/os-release | Ubuntu 24.04.5 LTS |
RUNNER_TOOL_CACHE and AGENT_TOOLSDIRECTORY | /opt/hostedtoolcache |
RUNNER_TEMP | /home/runner/work/_temp |
Because runner.os and runner.arch read the same as they do on a GitHub-hosted Linux x64 runner, a cache key built from them keeps the same shape on Sengi. Caches are served by Sengi's own cache: actions/cache, the setup actions' caches and Docker's type=gha layer cache work with no workflow changes, and a job's first run on Sengi fills that cache. See Docker layer caching on Sengi. RUNNER_ENVIRONMENT reads self-hosted, not github-hosted, so a workflow that branches on it takes the self-hosted branch.
actions/setup-nodewithnode-version: 22resolved Nodev22.23.2out of the tool cache on both sizes.actions/setup-pythonresolves from the same cache.actions/cachecold, warm and fallback restores,actions/upload-artifactandactions/download-artifact, jobservices:containers over mapped host ports, repository secrets with step and job scoping, and OIDC token issuance underid-token: writehave each passed onsengi-standard-8-ubuntu-2404.- Docker, Docker Compose
v2.38.2and Buildxv0.37.0are installed, and a Compose service lifecycle and a Buildx build were exercised onsengi-standard-2-ubuntu-2404.
Each case ran on the size named above. Run one of your own jobs to confirm its toolchain. The image version moves when the image is rebuilt, and the Node version it carries moves with it.
Watch the result, usage and history
Your project's Job history page lists every job Sengi has received updates for, hand-edited or not. Each job shows its state, runner size, image, label, start delay and execution time, its lifecycle timestamps from admission through GitHub's finish, and links to the run and job on GitHub. Logs stay in GitHub. A job whose title has gone missing after 90 days without updates still shows its number and result.
Each job starts as soon as a runner is ready. A job waiting for a runner stays in GitHub's queue and starts on its own; waiting is not a failure.
Pricing and the free allowance
| Runner size | Runner label | Rate per job-minute | Free credits per job-minute |
|---|---|---|---|
| 2 vCPU / 8 GB | sengi-standard-2-ubuntu-2404 | $0.003 | 1 |
| 4 vCPU / 16 GB | sengi-standard-4-ubuntu-2404 | $0.006 | 2 |
| 8 vCPU / 32 GB | sengi-standard-8-ubuntu-2404 | $0.012 | 4 |
The funding account shares 3,000 free credits per UTC calendar month across its projects, with no carryover. That is 3,000 standard-2-equivalent minutes, weighted 1/2/4 for the sizes above. Each job is rounded up once to whole execution minutes; boot and teardown are unbilled. Signup is cardless. When the allowance is exhausted, new free jobs are refused until the next month; jobs already admitted may finish within their normal timeout, and Sengi absorbs the overrun. Your account's concurrency limit applies as usual.
A card on file lifts that wait: your jobs keep running past 3,000 credits. Usage beyond the free grant is charged to the card on file monthly; there is no pre-authorisation or hold. Invoices, billing details and payment methods are available on your project's billing page. Read the funding account shown in your preview and the service terms before enabling.
Stop running jobs on Sengi
Change runs-on back, or revert the pull request that switched it, and your next job runs on GitHub's runners again. To stop Sengi placing new jobs for a repository without editing workflows, choose Stop new Sengi jobs for it on your project's GitHub connections page; jobs already running can finish and your job history stays. Jobs whose runs-on still names a Sengi label then wait in GitHub's queue with nothing to run them, so change those lines back too. Uninstalling the App removes GitHub access and is a separate action from changing labels.
Supported labels and platforms
- Use one of the three labels above, written literally. Any other label is not a Sengi runner, and no alias for them exists.
- Use one Sengi label per job. A job whose
runs-oncarries two labels Sengi recognises is held as ambiguous rather than resolved. - Write the label literally rather than as an expression in
runs-on. - All three runners are Ubuntu 24.04 on x64, at 2, 4 and 8 vCPU. Keep arm64, macOS, Windows and other Ubuntu releases on their current runners.
Getting help
For a job that stays queued, a connection that will not verify or anything else unresolved, use Help with the repository and the GitHub run and job links. Never send a token, password or session cookie.
