Skip to content
handupbeta
Download

run_stop

View as Markdown
POST
/v1/requests/{id}/run/stop

Stop a desktop run from any client: local callers, and paired devices with decide scope. Audited as run_stop_requested.

id
required
string

Stop requested: run.stop names who asked and request.updated is emitted; the desktop app running the command stops it (TERM, then KILL after 5 s) and reports stopped from <device>; terminated|killed. Repeating it changes nothing

Media typeapplication/json
object
id
string
title
required
string
tool
string | null
callback_url

Terminal-event destination; requires the daemon callbacks.allowlist.

string | null
summary
string | null
source
object
integration

Server-verified integration token name; caller values are overwritten.

string | null
agent
string | null
session
string | null
session_title

Display-only session name; scoped rules always use the session ID.

string | null
cwd
string | null
repo
string | null
branch
string | null
host
string | null
kind
string
Allowed values: command edit review question info custom
risk
string
Allowed values: low medium high
previews
Array<object>
object
type
required
string
Allowed values: text markdown code diff files command json html image video audio file pdf email
title
string | null
lang
string | null
inline
string | null
blob
string | null
mime
string | null
name
string | null
size
integer | null format: int64
files
Array<object> | null
object
path
required
string
blob
required
string
mime
required
string
size
required
integer format: int64
lang
string | null
entry
string | null
command
One of:
null
email
One of:
null
before_blob
string | null
after_blob
string | null
options
Array<object>
object
id
required
string
label
required
string
outcome
required
string
Allowed values: approve deny
style
string | null
input
One of:
null
timeout

Optional positive duration, at most one year. Absent uses config; null/none disables expiry.

string | null
run_timeout

Optional limit for the desktop app’s Run of this command (e.g. 30m). Absent uses the daemon’s run.timeout; the daemon caps it at run.max_timeout. Not part of the request’s decision timeout. Must be between 1ms and one year.

string | null
on_timeout
string
Allowed values: deny approve expire
dedupe_key
string | null
status
string
Allowed values: pending approved denied answered dismissed expired cancelled
content_hash
string
created_at
integer format: int64
expires_at
integer | null format: int64
decision
One of:
null
run
One of:
null
run_interrupted

Unix milliseconds when a desktop run’s lease lapsed without a result (the app crashed or stopped responding); the request is decidable again. Cleared when it is run again (daemon-managed).

integer | null format: int64

Remote device without decide scope, or disabled, downgraded or revoked by the time the stop commits

Not pending, or no desktop run holds the request