Run Anthropic Claude Code as an optio task; local subprocess or remote via SSH; ttyd-served TUI iframe.
Project description
optio-claudecode
Run Anthropic Claude Code as an optio task — either as a local
subprocess or on a remote host over SSH — with the interactive TUI
embedded in the optio dashboard via an iframe widget served by ttyd.
Install
pip install optio-claudecode
Requires Python 3.11+. Pulls optio-core, optio-host, and asyncssh.
On task start the package auto-installs the host binaries it needs unless told otherwise:
claude— via Anthropic's vendor script (https://claude.ai/install.sh)ttyd— static binary fromtsl0922/ttydGitHub Releases
Quick start
from optio_claudecode import (
ClaudeCodeTaskConfig,
create_claudecode_task,
)
def get_tasks():
return [
create_claudecode_task(
process_id="example-task",
name="Example",
config=ClaudeCodeTaskConfig(
consumer_instructions="Please write a haiku about MongoDB.",
credentials_json=load_user_creds_from_db(user_id),
# Optional: skip interactive permission prompts for autonomous flows.
permission_mode="bypassPermissions",
),
)
]
credentials_json is treated as an opaque payload and written verbatim
to <workdir>/home/.claude/.credentials.json (mode 0600) before claude
launches. Format follows whatever Anthropic's CLI currently expects.
How it works
Each task gets a workdir tempdir (/tmp/optio-claudecode-<uuid>/). The
ttyd process is launched with HOME=<workdir>/home, so claude reads
all its state — credentials, settings, session history — strictly from
the per-task workdir and never touches the host user's real
~/.claude/. Two tasks on the same host can run concurrently without
shared-state races.
The agent is given a <workdir>/CLAUDE.md that includes the
optio.log coordination protocol — STATUS: / DELIVERABLE: /
DONE / ERROR — verbatim from optio_host.agents. The same protocol
is used by optio-opencode, so the same consumer_instructions can be
swapped between the two packages.
See docs/2026-05-28-optio-claudecode-design.md for the full design.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file optio_claudecode-0.2.4.tar.gz.
File metadata
- Download URL: optio_claudecode-0.2.4.tar.gz
- Upload date:
- Size: 76.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a865a350648d2f7bfc7e798972c61e364e9fe1d5c9af23b580db48be138cfddb
|
|
| MD5 |
0d0d75603270b319a666e1c76778926c
|
|
| BLAKE2b-256 |
d9635ecfc602f0e6d683588db6e7795353a8580c9eaca225555ad59f938484eb
|
File details
Details for the file optio_claudecode-0.2.4-py3-none-any.whl.
File metadata
- Download URL: optio_claudecode-0.2.4-py3-none-any.whl
- Upload date:
- Size: 44.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d65d0ff348bda2ce63c523764b215dbc50c0741e2ef687c486b2901c7c87d770
|
|
| MD5 |
8a51daa2c80ce6d0dfffaa8ee8b4fcd4
|
|
| BLAKE2b-256 |
67d2506377a3cc2e95506c53770f8e2d38f1c247b59741bc1bedce0e63064176
|