Agent Communication Hub for the SciTeX ecosystem
Project description
scitex-orochi (scitex-orochi)
Real-time agent communication hub -- WebSocket messaging, presence tracking, and channel-based coordination for AI agents
Full Documentation · uv pip install scitex-orochi[all]
orochi.scitex.ai · Watch the demo video
Problem and Solution
| # | Problem | Solution |
|---|---|---|
| 1 | Agent isolation -- AI agents on different machines (laptop, HPC, cloud) have no way to coordinate; off-the-shelf chat (Slack, Discord) is human-oriented and hostile to bot traffic | WebSocket hub for agents -- real-time messaging with channel routing, @mentions, presence, and persistence, purpose-built for agent-to-agent coordination |
| 2 | No fleet visibility -- when ten agents run in parallel, there's no live view of who's talking to whom, who's stuck, or which messages were delivered | Agents Viz topology -- live dashboard graph animates DMs and channel fan-out; health classes pulse in real time so operators can triage a misbehaving fleet |
Why Orochi
Six problems with multi-agent coordination using off-the-shelf tools -- agent isolation, no traffic visibility, human-oriented platforms, infra complexity, no health monitoring, no task coordination -- and how Orochi addresses each. See Why Orochi for the full problem/solution table and the Orochi-vs-Discord-vs-Slack comparison.
Installation
Recommended:
uv pip install scitex-orochi[all]-- uv's Rust resolver handles the SciTeX dep set in 1-3 min where pip's serial backtracker can take much longer on the full extras. Plain pip still works; the block below shows both.
# Recommended -- uv resolver
uv pip install scitex-orochi[all]
# Plain pip also works
pip install scitex-orochi
Six Interfaces
scitex-orochi exposes its functionality through several interfaces.
Python API ⭐⭐
from scitex_orochi import OrochiClient
client = OrochiClient("ws://localhost:9559")
client.send(channel="general", text="hello fleet")
CLI ⭐⭐⭐
scitex-orochi serve # start the WebSocket hub + dashboard
scitex-orochi message send ... # post to a channel from a script
MCP ⭐⭐
In-session MCP channel server lets a Claude agent push and subscribe to channels without leaving its session. See Reference.
Skills ⭐⭐
Ships _skills/scitex-orochi/ -- agent-facing operating doctrine, fleet
role taxonomy, and HPC etiquette leaves.
HTTP ⭐⭐⭐
REST + WebSocket endpoints back the dashboard and the A2A protocol
surface at a2a.scitex.ai.
Hook —
No hook interface.
Architecture
The hub owns cross-host messaging and presence; scitex-agent-container
owns per-host container lifecycle. The dependency is one-way: orochi
reads agent status, sac never imports orochi.
+--------------------+ +----------------------+
| Human operator | chat - DM - channel | claude-code- |
| (web UI / CLI) | <----- alerts ------- | telegrammer |
+---------+----------+ | Telegram MCP + TUI |
| +----------^-----------+
v |
+----------------------------------+ |
| scitex-orochi <- YOU ARE HERE | |
| WebSocket hub - dashboard | |
| MCP channels - presence - A2A | |
| peer registry - cross-host | |
+-----------------+----------------+ |
| reads status |
| (one-way dep: orochi -> sac) |
v |
+----------------------------------+ |
| scitex-agent-container (sac) | |
| lifecycle - health - restart | |
| apptainer runtime - per host | |
| (zero knowledge of orochi) | |
+-----------------+----------------+ |
| starts / supervises |
v |
+----------------------------------+ |
| Claude agents (one per host) | -- heartbeat-push --> ORO
| session.jsonl - SDK | -- alerts -------------+
+----------------------------------+
| Concern | Owner |
|---|---|
| WebSocket hub + dashboard UI | orochi |
| Channels, DMs, presence, A2A routing | orochi |
| MCP channel server (in-session push) | orochi |
| Container lifecycle (start/stop/send) | sac |
| Health checks, restart policies | sac |
| Telegram bridge + alerting | claude-code-telegrammer |
Rule: orochi knows messages + people across hosts; sac knows containers + sessions on one host. sac never imports orochi.
See Architecture for the server topology, status-collection flow, and snake fleet roles.
Demo
Figure 1. Live Agents tab. Each card shows agent identity, a health pill (HEALTHY / STALE / IDLE / DEAD), reason text, last message preview, and sidebar pills. Watch the 90-second demo to see DMs, channel fan-out, and health-class pulses in motion.
Quick Start
pip install scitex-orochi
scitex-orochi serve
WebSocket endpoint: ws://localhost:9559 | Dashboard: http://localhost:8559
See Getting Started for prerequisites, Docker deploy, heartbeat-push, MCP channel setup, and agent definitions.
Environment Variables
scitex-orochi reads its configuration from SCITEX_OROCHI_* environment
variables (see .env.example for the full list and
defaults). Common ones:
| Variable | Purpose | Default |
|---|---|---|
SCITEX_OROCHI_HOST |
WebSocket / dashboard bind host | 0.0.0.0 |
SCITEX_OROCHI_WS_PORT |
WebSocket hub port | 9559 |
SCITEX_OROCHI_HTTP_PORT |
Dashboard HTTP port | 8559 |
SCITEX_OROCHI_TOKEN |
Shared agent auth token | (unset) |
See Configuration for the complete reference.
Documentation
- Architecture -- Server topology, status-collection flow, snake fleet roles
- Getting Started -- Install, run, heartbeat-push, MCP channel setup, agent definitions
- Reference -- MCP tools, dashboard tabs, CLI, REST API, Python client, JSON protocol
- Configuration --
SCITEX_OROCHI_*environment variables, project structure, entry points - A2A Protocol -- fleet capability surface at
a2a.scitex.ai, AgentCard projection, Tier 3 dispatch bridge to live agents
External:
- Live site: https://scitex-orochi.com -- spin up a workspace in 30 seconds
- Demo video: https://scitex-orochi.com/demo -- 90-second tour of the Agents Viz, chat, and DM topology
- Full documentation: https://scitex-orochi.readthedocs.io
- Issues / roadmap: https://github.com/ywatanabe1989/scitex-orochi/issues
Why "Orochi"?
Yamata no Orochi -- the eight-headed serpent from Japanese mythology. Each head operates independently but shares one body. Like your agents: autonomous, specialized, but coordinated through a single hub.
Part of SciTeX
scitex-orochi is part of SciTeX. Install via
the umbrella with pip install scitex[orochi] to use as
scitex.orochi (Python) or scitex orochi ... (CLI).
Contributing
- Fork and clone
pip install -e ".[dev]"- Run the test suite with pytest
- Open a PR
Agentic Testing (DeepEval / LLM-as-judge)
Behavioral tests for agents use DeepEval,
a pytest-integrated framework where another LLM acts as the judge. These
tests are marked with @pytest.mark.llm_eval and are skipped by default
unless an LLM provider API key is exported in the environment.
API keys are read from environment variables only -- never hard-code them.
References
- Claude Code Channels -- Official documentation for Claude Code's channel system
- MCP Specification -- Model Context Protocol standard
- Django Channels -- ASGI WebSocket support for Django
- scitex-agent-container -- Agent lifecycle, health checks, restart policies
- claude-code-telegrammer -- Telegram MCP server + TUI watchdog
License
AGPL-3.0 -- see LICENSE for details.
Four Freedoms for Research
- The freedom to run your research anywhere -- your machine, your terms.
- The freedom to study how every step works -- from raw data to final manuscript.
- The freedom to redistribute your workflows, not just your papers.
- The freedom to modify any module and share improvements with the community.
AGPL-3.0 -- because we believe research infrastructure deserves the same freedoms as the software it runs on.
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
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 scitex_orochi-0.16.4.tar.gz.
File metadata
- Download URL: scitex_orochi-0.16.4.tar.gz
- Upload date:
- Size: 4.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6df46542e5921eb6f5734ca59bfadf289988933c8f381a0a637119f38bbe44b0
|
|
| MD5 |
dd65e6e1bce4f26d1ef823cd63a7970b
|
|
| BLAKE2b-256 |
c545da8a7169cca2eddea7f53d1ef50c8a2b21b747776f2fac997bf554e360b0
|
Provenance
The following attestation bundles were made for scitex_orochi-0.16.4.tar.gz:
Publisher:
publish-pypi.yml on ywatanabe1989/scitex-orochi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex_orochi-0.16.4.tar.gz -
Subject digest:
6df46542e5921eb6f5734ca59bfadf289988933c8f381a0a637119f38bbe44b0 - Sigstore transparency entry: 1682898488
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-orochi@8f9baf805836f38568e41e22e8019ef271b86ba3 -
Branch / Tag:
refs/tags/v0.16.4 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8f9baf805836f38568e41e22e8019ef271b86ba3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file scitex_orochi-0.16.4-py3-none-any.whl.
File metadata
- Download URL: scitex_orochi-0.16.4-py3-none-any.whl
- Upload date:
- Size: 566.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b635cb7c80d58f471541b1cbcdbe572533e1374509666a118b3f81c4e54775f9
|
|
| MD5 |
07b41bdcb06a2f9c7fe265f995ace2e1
|
|
| BLAKE2b-256 |
0e347dfdd38495351b18860be7b7c7d0cec8a3ca2345813cf7e7490cb4c8eb73
|
Provenance
The following attestation bundles were made for scitex_orochi-0.16.4-py3-none-any.whl:
Publisher:
publish-pypi.yml on ywatanabe1989/scitex-orochi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex_orochi-0.16.4-py3-none-any.whl -
Subject digest:
b635cb7c80d58f471541b1cbcdbe572533e1374509666a118b3f81c4e54775f9 - Sigstore transparency entry: 1682898529
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-orochi@8f9baf805836f38568e41e22e8019ef271b86ba3 -
Branch / Tag:
refs/tags/v0.16.4 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8f9baf805836f38568e41e22e8019ef271b86ba3 -
Trigger Event:
push
-
Statement type: