---
title: "Start (or return the already-running) install job for a fixed system target"
method: POST
path: "/api/v1/system/install/{target}"
tags: ["system"]
---

# Start (or return the already-running) install job for a fixed system target

`POST /api/v1/system/install/{target}`

## Path parameters

- `target` string, required — Install target identifier: tmux, gh, claude, codex, opencode, copilot, or cloudflared.

## Response `202`

Accepted

- InstallJob
  - `command` string — Human-readable install command, e.g. "brew install tmux", for display even before/without output.
  - `error` string — Set on failure or when the target is unsupported on this machine: the exec error, the Unsupported reason, or a timeout message.
  - `finishedAt` string, date-time, nullable — Absent until the job finishes.
  - `output` string — Combined stdout+stderr from the install command, tail-capped to the last ~4000 bytes.
  - `startedAt` string, date-time, nullable
  - `status` 'idle' | 'running' | 'succeeded' | 'failed' | 'unsupported', required — Current lifecycle state of the job.
  - `target` 'tmux' | 'gh' | 'claude' | 'codex' | 'opencode' | 'copilot' | 'cloudflared', required — Install target this job ran (or is running) for.

## Other responses

- `400` — Bad Request
- `500` — Internal Server Error
- `501` — Not Implemented

## Changes

- **2026-08-31** `09f65272fe44` — 1 warning
  - added the new `cloudflared` enum value to the `target` response property for the response status `202`
- **2026-08-21** `c0ee64eaeae5` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/system/install/:target/post.md)

---

[API](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon.md) · [All operations](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/composiohq/agent-orchestrator-http-daemon/revisions/513f2a8dd71b/schema)
