Skip to main content

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.
  • Sessions — attach / 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.

Metadata

Release files for dejima-sdk 0.8.87

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dejima-sdk 0.8.87
File Size Uploaded
dejima_sdk-0.8.87.tar.gz 15.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dejima-sdk 0.8.87
File Interpreter ABI Platform
dejima_sdk-0.8.87-py3-none-any.whl Python 3 none any Details

Total release size: 27.7 kB

Release files / dejima_sdk-0.8.87.tar.gz

Download URL dejima_sdk-0.8.87.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2994393d045f16561a4b4cd4d9f0b82e8d5237e016188cb59981a075a1fc132c
BLAKE2b-256 checksum
How to use checksums
3de8098f95b00d735878c10131da94c457f3d34724b8b8b6d2102a49e7b790b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dejima_sdk-0.8.87-py3-none-any.whl

Download URL dejima_sdk-0.8.87-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
280760fc8c952529d27f8c549025417299813e0458751e05242e4edd05d36cf3
BLAKE2b-256 checksum
How to use checksums
2d738fe67ac00fbd051680fd8a3f51cfb01e63d70a349a9829c41b1b470f19df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.9.20

2 release files

0.9.19

2 release files

0.9.18

2 release files

0.9.17

2 release files

0.9.16

2 release files

0.9.15

2 release files

0.9.14

2 release files

0.9.13

2 release files

0.9.12

2 release files

0.9.11

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

This release

0.8.87 This release

2 release files

0.8.81

2 release files

0.8.80

2 release files

0.8.79

2 release files

0.8.78

2 release files

0.8.77

2 release files

0.8.76

2 release files

0.8.75

2 release files

0.8.74

2 release files

0.8.73

2 release files

0.8.72

2 release files

0.8.71

2 release files

0.8.70

2 release files

0.8.69

2 release files

0.8.68

2 release files

0.8.67

2 release files

0.8.66

2 release files

0.8.65

2 release files

0.8.64

2 release files

0.8.63

2 release files

0.8.62

2 release files

0.8.61

2 release files

0.8.60

2 release files

0.8.59

2 release files

0.8.56

2 release files

0.8.55

2 release files

0.8.54

2 release files

0.8.53

2 release files

0.8.52

2 release files

0.8.51

2 release files

0.8.50

2 release files

0.8.49

2 release files

0.8.48

2 release files

0.8.47

2 release files

0.8.46

2 release files

0.8.45

2 release files

0.8.44

2 release files

0.8.43

2 release files

0.8.42

2 release files

0.8.41

2 release files

0.8.40

2 release files

0.8.39

2 release files

0.8.38

2 release files

0.8.37

2 release files

0.8.36

2 release files

0.8.35

2 release files

0.8.34

2 release files

0.8.33

2 release files

0.8.32

2 release files

0.8.31

2 release files

0.8.30

2 release files

0.8.29

2 release files

0.8.28

2 release files

0.8.27

2 release files

0.8.26

2 release files

0.8.25

2 release files

0.8.24

2 release files

0.8.23

2 release files

0.8.22

2 release files

0.8.21

2 release files

0.8.20

2 release files

0.8.19

2 release files

0.8.18

2 release files

0.8.17

2 release files

0.8.16

2 release files

0.8.15

2 release files

0.8.14

2 release files

0.8.13

2 release files

0.8.9

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page