Skip to main content

Cyborgy CLI

cyborgy extends coding-agent CLIs such as Claude Code, Codex, and OpenCode with the Cyborgy MCP, workspace roles, skills, memory, extension APIs, and temporary tunnels.

This package provides:

  • cyborgy: the main CLI.
  • cyborgy-mcp: the MCP server used by supported coding agents.
  • cyborgy-dev and cyborgy-mcp-dev: development-environment entry points.

The built-in profiles are authoritative: cyborgy uses production state in ~/.cyborgy, while cyborgy-dev uses development state in ~/.cyborgy-dev. A stale saved URL for the other built-in environment is ignored. Set CYBORGY_API_URL explicitly when intentionally targeting a custom endpoint.

Install

pip install cyborgy

For local Cyborgy development tooling:

pip install -e .
pip install -r requirements-dev.txt

Basic usage

cyborgy login
cyborgy mcp install --target codex
cyborgy codex exec "summarize this repository"
cyborgy devin -- "review this repository"
cyborgy grok "fix the failing test"

Sending files to the user

Agents send user-facing files with the MCP tool send_file_to_user(path). The file is delivered to the current session through the existing private View API and appears under “Files from AI” in the Cyborgy web app. Returning a local path or opening a local GUI does not deliver a file to a remote user. Files larger than 25 MiB must be reduced or converted so the relevant part can be sent.

The old show_file(path) name remains as a deprecated alias and delegates to the same delivery implementation. It will be retained until both at least two subsequent minor CLI releases have shipped and all active workers are confirmed updated; removal follows whichever milestone occurs later.

The CLI stores login state locally and resolves MCP/skills into user-owned runtime state outside the current repository. Agent wrappers are available for Claude Code, Codex, Cursor Agent, GitHub Copilot CLI, Devin CLI, and Grok Build.

Clean workspace runtime

Normal wrapper launches and sync/install commands do not create .claude, .codex, .cursor, .copilot, .devin, .grok, .cyborgy, .mcp.json, or plugins/ paths in the working tree. Persistent workspace settings use the XDG data directory and generated plugins/configuration use the XDG cache directory:

${XDG_DATA_HOME:-~/.local/share}/cyborgy/<profile>/workspaces/<workspace-key>/
${XDG_CACHE_HOME:-~/.cache}/cyborgy/<profile>/workspaces/<workspace-key>/

CYBORGY_DATA_HOME and CYBORGY_CACHE_HOME override those roots. Worker sessions receive a session-specific cache overlay so concurrent agents in the same repository cannot replace each other's supervisor skills.

Runtime loading is target-specific:

  • Claude Code, Cursor Agent, and Copilot receive an external cyborgy-workspace bootstrap plugin through --plugin-dir.
  • Copilot also receives the external MCP file through --additional-mcp-config.
  • Codex receives the skill catalog and MCP definition through session config overrides while preserving existing developer_instructions.
  • Devin receives an external declarative --agent-config; an explicitly supplied JSON/YAML agent config is merged with it.
  • Grok receives the external skill catalog through --rules and uses an idempotent user-scoped MCP entry in ~/.grok/config.toml.

To intentionally create native project files for Git management, opt in:

cyborgy mcp install --target claude --project-local
cyborgy skills install <skill-id> --target claude --project-local
cyborgy workspace sync --target claude --project-local

Existing project-local files from older Cyborgy versions are never deleted automatically because they may already be tracked or user-edited. After upgrading, review and remove those legacy generated paths manually if they are not meant to remain in Git.

Agent model catalogs

cyborgy models list reports the model catalogs exposed by installed local agent CLIs. It prefers scriptable account-aware sources such as cursor-agent models, codex debug models, grok models, and opencode models. Claude, Copilot, and Devin use a bounded interactive /model probe when needed.

cyborgy models list
cyborgy models list --tool codex --json
cyborgy models list --no-fallback
cyborgy models list --no-interactive-probe

For tools that only expose account-specific choices through an interactive model selector, the CLI uses a short-lived PTY probe, waits for the tool prompt, answers terminal capability queries, and accepts rows only after the selector is visible. Worker registration caches the same structured catalog for 15 minutes so the web model picker stays aligned with what the local tool can actually show, including degraded/fallback source information. Agent quota/usage reporting follows the same rule: Cyborgy parses structured usage windows from short-lived interactive usage views when available, and reports unknown instead of guessing when a tool does not expose parseable limit, used, or remaining values.

Context rollover history

When a saved native conversation crosses its configured context threshold, the worker starts a fresh native agent session and builds portable continuation context from the authenticated Cyborgy session-event API. Production serves that canonical history from Firestore, so rollover does not depend on the next agent sharing the previous tool, host, HOME, or transcript layout. The worker flushes pending events, reads every history page, and retains both the first user request and the latest turns in the compact context. A local absolute transcript path remains only as a fallback when canonical history is unavailable.

Versioned Worker Runtime

cyborgy worker start is the launcher form: it starts or verifies one background worker for the current local logical-worker scope, then exits 0. That scope is the local device key, current profile, normalized Backend API URL, and resolved Cyborgy config directory. The display name and repository root are not part of the scope. Consequently, starting the same logical worker from another repository root or with another display name is a no-op (already-running) while the recorded Manager PID is alive; stale PID records are replaced safely.

Only the start, stop, and restart lifecycle actions are public. The worker runtime is internal to the managed launcher; use cyborgy worker start for normal operation.

cyborgy worker stop stops only the managed background worker recorded by cyborgy worker start for the same local logical-worker scope. It may therefore stop the Manager started from another repository root or under another display name; the command does not search by process name. Stale or unverified PID records are cleared/refused without sending a signal. If more than one live compatible legacy record is found for the scope, the launcher fails closed and does not choose or signal an arbitrary Manager. cyborgy worker restart uses the same managed-worker safety checks, then starts the worker again using the requested display name and repository root. The repository root remains the Manager/Runtime child execution cwd only; it is not a launcher, state, or runtime identity component.

Launcher ownership records fail closed. If a record is corrupt or cannot be read because of local permissions, start, stop, and restart refuse to spawn or signal a process and identify the record that must be inspected. An already-running start is an idempotent no-op and reports the exact Manager PID and log path.

The public launcher starts one persistent outer Manager in the selected Python. The Manager obtains the Backend's exact release metadata, verifies the SHA-256-pinned wheel, builds an immutable runtime under the user's XDG data directory, and launches the inner Worker with that runtime's absolute Python. The Worker never installs into itself, re-execs itself, or spawns a replacement Worker. cyborgy worker restart remains an explicit operator lifecycle action; the Manager owns normal version handoff, drain, rollback, and runtime GC. If the Backend rejects a Runtime's registration or poll because its identity or generation has been fenced, that Runtime exits instead of retrying the rejected registration indefinitely. It writes an exact PID/start/runtime fence for the Manager, which records the Backend's active Worker and route generation and does not automatically respawn the rejected runtime. That fence survives a Manager replacement or restart; an explicit cyborgy worker restart remains the manual lifecycle override. Transient transport and server failures continue to use bounded retry behavior.

The Backend release configuration must advertise all of these values before a managed Worker can build a runtime:

  • CYBORGY_CLI_LATEST_VERSION
  • CYBORGY_CLI_ARTIFACT_URL
  • CYBORGY_CLI_ARTIFACT_SHA256
  • CYBORGY_CLI_ARTIFACT_INDEX_URL (normally https://pypi.org/simple)
  • CYBORGY_CLI_ARTIFACT_FILENAME (optional when the URL has a wheel filename)
  • CYBORGY_CLI_ARTIFACT_SOURCE_SHA (dev only: exact source commit for the wheel)

Runtime state and manifests contain identity facts and hashes only. A runtime directory is never overwritten; failed candidates are quarantined and retried at bounded intervals before GC considers unreferenced generations.

Status

This is an alpha package. The public CLI surface is expected to evolve with the Cyborgy service.

Download files

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

Source Distribution

cyborgy-0.1.180.tar.gz (22.2 MB view details)

Uploaded Source

Built Distribution

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

cyborgy-0.1.180-py3-none-any.whl (22.3 MB view details)

Uploaded Python 3

File details

Details for the file cyborgy-0.1.180.tar.gz.

File metadata

  • Download URL: cyborgy-0.1.180.tar.gz
  • Upload date:
  • Size: 22.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cyborgy-0.1.180.tar.gz
Algorithm Hash digest
SHA256 5a448f2e65e36eaba0aa26ef96fa446720e8f304a73b23b6d5c759e3cea6f9f7
MD5 4574b01fe3920e0ed88b05168e5fe72f
BLAKE2b-256 679af9454b7364a2d497a9d117e380dd54e4491536d1ae8e9dce01d52ba542b6

See more details on using hashes here.

File details

Details for the file cyborgy-0.1.180-py3-none-any.whl.

File metadata

  • Download URL: cyborgy-0.1.180-py3-none-any.whl
  • Upload date:
  • Size: 22.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cyborgy-0.1.180-py3-none-any.whl
Algorithm Hash digest
SHA256 eb47e9d40204772cb345f1e4f6c51303a57b0f13fe17276c3210dbd62c78632f
MD5 f2fa74bec8cd2d186c877bc884d1ad0d
BLAKE2b-256 2036df3e25831918a44ece9a4d058c66595ed6724a1acd6a1f5346f20f07c0ee

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.210

2 files

0.1.209

2 files

0.1.208

2 files

0.1.207

2 files

0.1.206

2 files

0.1.204

2 files

0.1.202

2 files

0.1.201

2 files

0.1.200

2 files

0.1.198

2 files

0.1.196

2 files

0.1.195

2 files

0.1.194

2 files

0.1.193

2 files

0.1.192

2 files

0.1.191

2 files

0.1.190

2 files

0.1.189

2 files

0.1.188

2 files

0.1.187

2 files

0.1.186

2 files

0.1.185

2 files

0.1.184

2 files

0.1.183

2 files

0.1.182

2 files

0.1.181

2 files

This release

0.1.180 This release

2 files

0.1.179

2 files

0.1.178

2 files

0.1.176

2 files

0.1.175

2 files

0.1.174

2 files

0.1.173

2 files

0.1.172

2 files

0.1.171

2 files

0.1.170

2 files

0.1.169

2 files

0.1.168

2 files

0.1.167

2 files

0.1.166

2 files

0.1.165

2 files

0.1.164

2 files

0.1.163

2 files

0.1.162

2 files

0.1.161

2 files

0.1.160

2 files

0.1.159

2 files

0.1.158

2 files

0.1.157

2 files

0.1.156

2 files

0.1.155

2 files

0.1.154

2 files

0.1.153

2 files

0.1.152

2 files

0.1.151

2 files

0.1.150

2 files

0.1.149

2 files

0.1.148

2 files

0.1.142

2 files

0.1.135

2 files

0.1.134

2 files

0.1.133

2 files

0.1.132

2 files

0.1.131

2 files

0.1.130

2 files

0.1.129

2 files

0.1.128

2 files

0.1.127

2 files

0.1.126

2 files

0.1.125

2 files

0.1.124

2 files

0.1.122

2 files

0.1.121

2 files

0.1.120

2 files

0.1.119

2 files

0.1.118

2 files

0.1.117

2 files

0.1.116

2 files

0.1.115

2 files

0.1.113

2 files

0.1.112

2 files

0.1.111

2 files

0.1.110

2 files

0.1.107

2 files

0.1.106

2 files

0.1.105

2 files

0.1.104

2 files

0.1.103

2 files

0.1.102

2 files

0.1.101

2 files

0.1.100

2 files

0.1.99

2 files

0.1.98

2 files

0.1.97

2 files

0.1.96

2 files

0.1.95

2 files

0.1.92

2 files

0.1.91

2 files

0.1.88

2 files

0.1.87

2 files

0.1.86

2 files

0.1.85

2 files

0.1.84

2 files

0.1.83

2 files

0.1.82

2 files

0.1.81

2 files

0.1.80

2 files

0.1.79

2 files

0.1.78

2 files

0.1.77

2 files

0.1.76

2 files

0.1.73

2 files

0.1.72

2 files

0.1.69

2 files

0.1.68

2 files

0.1.67

2 files

0.1.66

2 files

0.1.65

2 files

0.1.64

2 files

0.1.63

2 files

0.1.62

2 files

0.1.60

2 files

0.1.52

2 files

0.1.48

2 files

0.1.47

2 files

0.1.43

2 files

0.1.42

2 files

0.1.41

2 files

0.1.40

2 files

0.1.39

2 files

0.1.38

2 files

0.1.37

2 files

0.1.36

2 files

0.1.35

2 files

0.1.34

2 files

0.1.32

2 files

0.1.31

2 files

0.1.30

2 files

0.1.29

2 files

0.1.28

2 files

0.1.27

2 files

0.1.26

2 files

0.1.25

2 files

0.1.24

2 files

0.1.22

2 files

0.1.21

2 files

0.1.20

2 files

0.1.19

2 files

0.1.18

2 files

0.1.17

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 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