ConnectOnion Studio — local test cockpit for ConnectOnion agents: create, run, QR, live logs, Copy-for-Claude diagnostics.
Project description
A local test cockpit for ConnectOnion agents.
Click toolkits to build an agent · scan its QR from the iOS app · watch live logs
Install
pipx install connectonion-studio # or: pip install connectonion-studio
co-studio # opens http://127.0.0.1:9900
That's it. The first launch auto-creates your identity and activates your managed model key (needs internet — it's your own key, one per user). Offline on first run? Just run co auth once you're back online.
Desktop app (macOS)
A native macOS app (SwiftUI + WKWebView) lives in macos/ — the same cockpit in a real window with the traffic-light chrome and app icon. Build and run it from Xcode (macos/ConnectOnionStudio/); a signed .dmg for one-click install is on the way.
What it does
| 🧩 Create | Form: name · model · toolkit checkboxes → identity + QR ready instantly |
| ▶️ Run | One process per agent, health-polled every 5 s, live state over WebSocket |
| 📱 QR | Bare 0x address — scan it in the iOS "Add agent" flow |
| 📜 Logs | Live stdout + framework-logger streams, per agent |
| 🩺 Copy for Claude | Paste-ready markdown diagnostics bundle, one click |
| 🗑️ Delete | Two-step confirm, then a permanent delete — identity, keys, and logs are removed for good |
Toolkits: utility · web · files · shell (approval-gated) · image
Requirements
Python 3.11+ · macOS, Linux, or Windows (WSL recommended)
API reference
| Method | Path | Returns |
|---|---|---|
GET |
/api/agents |
{"agents": [AgentSummary]} |
POST |
/api/agents |
AgentDetail — body {name, model, toolkits, trust} |
GET |
/api/agents/{slug} |
AgentDetail |
POST |
/api/agents/{slug}/start · /stop · /restart |
{"state": …} |
POST |
/api/agents/{slug}/rename |
AgentSummary — body {name} |
DELETE |
/api/agents/{slug} |
204 (stops the agent, then permanently deletes it) |
GET |
/api/agents/{slug}/qr.svg |
SVG QR |
GET |
/api/agents/{slug}/diagnostics |
Markdown bundle |
GET |
/api/setup/status |
Doctor checks |
WS |
/ws/status |
Status frames (each change + every 5 s) |
WS |
/ws/agents/{slug}/logs |
{"source": "stdout" | "logger", "line": …} |
Storage & internals
~/.co-studio/agents/<slug>/ meta.json · agent.py · .env · .co/ · studio-stdout.log
- Agent ports
8000–8099, allocated by socket probe (busy ports skipped, re-probed at start). agent.pyis standalone — eject it anywhere andpython agent.pystill works (the announce IP-trim patch is inlined).
Development (from source)
git clone https://github.com/EvanYifanYang/connectonion-studio && cd connectonion-studio
./install.sh
.venv/bin/co-studio
| Env | Effect |
|---|---|
CONNECTONION_PATH=~/repo/connectonion ./install.sh |
Install the framework from a local checkout instead of PyPI |
PYTHON=python3.12 ./install.sh |
Pick the interpreter |
Security
- The manager binds
127.0.0.1:9900only. - Agent ports are unauthenticated and exposed on your LAN by
host()— that is how the phone connects. Don't run on hostile networks.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file connectonion_studio-0.1.2.tar.gz.
File metadata
- Download URL: connectonion_studio-0.1.2.tar.gz
- Upload date:
- Size: 221.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fffa7351d9a33b1a057d06603ded2dce6db1a265e97010cd7aef5c48cdaccae3
|
|
| MD5 |
340453d32971c2c324acad2252b2a7fe
|
|
| BLAKE2b-256 |
efc814c0d5b44ad4e68b6293397f68324d3ecb0f96858087dfd55d4fb84f9915
|
File details
Details for the file connectonion_studio-0.1.2-py3-none-any.whl.
File metadata
- Download URL: connectonion_studio-0.1.2-py3-none-any.whl
- Upload date:
- Size: 230.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9dd6a0820c25b89ad9acef514bdf90093c7f9761c1f64d7732aca9e0d29288f
|
|
| MD5 |
27045accd433e92da36ea7ab611cbe84
|
|
| BLAKE2b-256 |
bf5138c69ad441efd8e840bf160faf35e29b2cc7a7a0bcc7bdb78d549d0d78fb
|