Skip to main content

Python client for the Dejima API — run a fleet of AI coding agents on hardware you own.

Project description

dejima — Python client

Thin Python client for the Dejima API: run a fleet of AI coding agents on hardware you own.

Alpha (0.x). The API is stable in shape (v1/-prefixed) but fields may change until 1.0. This client is hand-written over the REST surface and mirrors openapi.yaml; the only non-generated piece is the PTY Session helper.

Install

pip install dejima-sdk            # REST client
pip install 'dejima[ws]'      # + WebSocket PTY attach()

Quickstart

from dejima import Client

# host/token from $DEJIMA_HOST and $DEJIMA_TOKEN, or pass explicitly:
dj = Client(host="100.84.12.7:7273")

isl = dj.create_island(repo="git@github.com:you/foo.git", agent="claude-code")
print(isl["name"], isl["state"])

# add a second agent on its own worktree
dj.add_agent(isl["name"], type="codex")

# one-shot command
out = dj.exec(isl["name"], ["git", "status", "--short"])
print(out["stdout"], "exit", out["exit_code"])

# fleet view
for i in dj.list_islands():
    print(i["name"], i["state"], len(i.get("agents", [])), "agents")

print(dj.overview())   # daemon health, VM memory, rollup

Interactive sessions

attach() opens the multi-attach PTY stream (needs the ws extra). The daemon speaks a small JSON-envelope protocol over the WebSocket — Session hides that, so you deal in raw bytes:

with dj.attach(isl["name"]) as s:   # or agent="p2"
    s.resize(40, 120)
    s.send(b"ls -la\n")
    print(s.recv())                 # bytes of PTY output, or None when closed

dj.attach_terminal("t1") does the same for an operator host terminal.

API coverage

The client covers the full v1 surface:

  • Islands — list/create/get/update/delete, hibernate/wake/reset/upgrade, clone, resources, workspace-ready, events.
  • Agents — list/add/get/update/remove, configure (provider/model).
  • Exec & files — exec, file read/write, logs.
  • Port broker — scopes (list/grant/revoke), intake/export/write.
  • Capability broker — grants (list/grant/revoke), execute.
  • MCP broker — grants (list/grant/revoke), mcp_call.
  • Credentials — Claude push/status, GitHub identities + repos, LLM providers.
  • Operator tokens — create/list/revoke (owner-only; role + island scope).
  • Events — webhook subscribe/list/unsubscribe.
  • Activity — team activity feed (activity, filterable).
  • Daemon — overview, agent-types, healthz, audit (filters + jsonl/csv export), clients, sessions-revoke, panic, admin-update, image-build, SSH account keys.
  • Host terminals — list/create/delete/relabel + attach_terminal.
  • Sessionsattach / attach_terminal (PTY) and session_url.

Every non-2xx response raises dejima.DejimaError (.status, .message).

Auth

  • Operator (unix socket / tailnet) needs no token.
  • Autonomy path (an agent driving its own/child islands) uses a per-island bearer token — set DEJIMA_TOKEN or pass token=.

Development

pip install -e '.[dev]'
pytest

Tests run against a stdlib http.server stub — no running daemon required.

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

dejima_sdk-0.8.44.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

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

dejima_sdk-0.8.44-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file dejima_sdk-0.8.44.tar.gz.

File metadata

  • Download URL: dejima_sdk-0.8.44.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dejima_sdk-0.8.44.tar.gz
Algorithm Hash digest
SHA256 47818d7e59991a32355e292920bdd22122485bdadbb22e2d5457ba24d13d31d6
MD5 24e764d092d6984f665d68032a58cc44
BLAKE2b-256 7b564051abfc83b3d308e8c66e01743d640647a8ddae46f55f1bad38b1791db5

See more details on using hashes here.

File details

Details for the file dejima_sdk-0.8.44-py3-none-any.whl.

File metadata

  • Download URL: dejima_sdk-0.8.44-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dejima_sdk-0.8.44-py3-none-any.whl
Algorithm Hash digest
SHA256 cbed2a04b718f1ecb07f3306925d022e9dbe24e652716e5b0cf4955127c4538a
MD5 05fb456b39e08dc70a8c7881f4b3ef22
BLAKE2b-256 dfbdd8f8ca6f83edcc06e9485508afa7d84da36aca8c9e8c5e52f93687fe86d6

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