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.73

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.73
File Size Uploaded
dejima_sdk-0.8.73.tar.gz 15.3 kB Details

Built distribution (wheel)

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

Total release size: 27.7 kB

Release files / dejima_sdk-0.8.73.tar.gz

Download URL dejima_sdk-0.8.73.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
461765a27d5af94f3e08d4b511e54aa90a02c7b3e1e122c36993a233a6bb7b15
BLAKE2b-256 checksum
How to use checksums
b0dc465b54cc0e623710e15a2aa605949a8d832eca5116b7142b3c8db4482255
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.73-py3-none-any.whl

Download URL dejima_sdk-0.8.73-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce7d634ac130fabfb8c7ab2ddff9d0c88f9469b2c8e087ba1da3f9012db3b74b
BLAKE2b-256 checksum
How to use checksums
aaa06d617b0f30a58a9a5c3e7242a0416697ae7018989db495ac41235271abef
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

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

This release

0.8.73 This release

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