execd — HTTP REST API execution daemon with Python client library.
pip install execdexecd-server --host localhost --port 8080from execd import ExecClient
client = ExecClient(host="localhost", port=8080)
# Submit a task
task_id = client.submit_task("print('hello world')")
# Wait for completion
task = client.wait_for_task(task_id)
print(task["status"]) # "completed"
print(task["result"]) # "Executed: print('hello world')"
# Get task status
task = client.get_task(task_id)
# Delete task
client.delete_task(task_id)# Submit a task
execd-client submit "print('hello')"
# Get task status
execd-client get <task_id>
# Delete a task
execd-client delete <task_id>| Endpoint | Method | Description |
|---|---|---|
/tasks |
POST | Submit a new task |
/tasks/{id} |
GET | Get task status and result |
/tasks/{id} |
DELETE | Cancel/remove a task |
ExecServer(host, port)- HTTP REST API serverExecClient(host, port)- Client for interacting with serversubmit_task(code)- Submit task, returns task_idget_task(task_id)- Get task statusdelete_task(task_id)- Delete taskwait_for_task(task_id, timeout)- Wait for task completion
git clone https://github.com/daedalus/execd.git
cd execd
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint + type check (prospector runs ruff check + mypy together)
prospector --with-tool ruff --with-tool mypy src/
semgrep --config=auto --severity=ERROR src/