Skip to main content

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 from tsl0922/ttyd GitHub 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

optio_claudecode-0.1.4.tar.gz (48.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

optio_claudecode-0.1.4-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file optio_claudecode-0.1.4.tar.gz.

File metadata

  • Download URL: optio_claudecode-0.1.4.tar.gz
  • Upload date:
  • Size: 48.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for optio_claudecode-0.1.4.tar.gz
Algorithm Hash digest
SHA256 a973a3d5f6ce493970ab7e6a32f87e39b96bdc4e274d17f69c0f6bdfa77f9f34
MD5 a2a84fd03d836efc4b65b5e56f8fc209
BLAKE2b-256 8ebce91a8be721836e130c4ff206cb5c1df926fe7f50e4e063eb442d9a93b2cf

See more details on using hashes here.

File details

Details for the file optio_claudecode-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for optio_claudecode-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8ef9ecb7a6ae5e7b6bb378d3d9d5df7e49ca3e73f9a8b95b42d13fad89ad7e90
MD5 9684e99c7c00713294dec78063975008
BLAKE2b-256 77b5c013ab5418c0f64d34b3252c6e6e47c768ced98ad655439d028069233702

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page