Metadata-Version: 2.4
Name: cmdop-server
Version: 0.0.2
Summary: cmdop_server engine: core (db/auth/services/orm) + gRPC/REST transport + base processes, as an installable package
License: Apache-2.0
Requires-Python: >=3.12
Requires-Dist: aiosmtplib>=5.1.0
Requires-Dist: alembic>=1.18
Requires-Dist: anthropic>=0.99
Requires-Dist: argon2-cffi>=23.1
Requires-Dist: arq>=0.28.0
Requires-Dist: asyncpg>=0.30
Requires-Dist: croniter>=6.2.2
Requires-Dist: cryptography>=43.0
Requires-Dist: email-validator>=2.2
Requires-Dist: fastapi>=0.136
Requires-Dist: grpcio-health-checking>=1.80
Requires-Dist: grpcio-reflection>=1.80
Requires-Dist: grpcio>=1.80
Requires-Dist: httpx>=0.27
Requires-Dist: jinja2>=3.1.6
Requires-Dist: openai>=2.34
Requires-Dist: opentelemetry-api>=1.41
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.41
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.62b1
Requires-Dist: opentelemetry-instrumentation-grpc>=0.62b1
Requires-Dist: opentelemetry-instrumentation-httpx>=0.62b1
Requires-Dist: opentelemetry-instrumentation-sqlalchemy>=0.62b1
Requires-Dist: opentelemetry-sdk>=1.41
Requires-Dist: orjson>=3.10
Requires-Dist: pillow-heif>=0.20
Requires-Dist: pillow>=11.0
Requires-Dist: prometheus-client>=0.25
Requires-Dist: psycopg[binary]>=3.3
Requires-Dist: pydantic-ai-slim>=1.91
Requires-Dist: pydantic-settings>=2.14
Requires-Dist: pydantic>=2.13
Requires-Dist: pynacl>=1.6.2
Requires-Dist: python-multipart>=0.0.20
Requires-Dist: redis>=5.0
Requires-Dist: sqlalchemy[asyncio]>=2.0
Requires-Dist: structlog>=25.5
Requires-Dist: typer>=0.25
Requires-Dist: uvicorn[standard]>=0.46
Description-Content-Type: text/markdown

# cmdop-server — the self-hostable CMDOP relay engine

![cmdop-server — self-hostable agent relay](https://raw.githubusercontent.com/commandoperator/cmdop-server/main/assets/hero-cmdop-server.webp)

Run your **own** CMDOP server: the relay hub your machines dial into over gRPC to
become reachable from anywhere — terminal, remote exec, file ops, tunnels — plus
**Jarvis**, a built-in AI that can drive your fleet. This package ships the
**engine** (core + transport + base processes) so you can stand up a relay in
your own network instead of relying on the public cloud.

```bash
pip install cmdop-server
```

📚 **Full documentation: [docs.cmdop.com](https://docs.cmdop.com)** — install,
configuration, auth flows, and the gRPC reference. Product pages:
[Server](https://cmdop.com/server) · [Connect](https://cmdop.com/connect) ·
[Bots](https://cmdop.com/bots) · [SDK](https://cmdop.com/sdk).

## What this package is

The **"what doesn't change"** half of a relay deployment — the engine, as a
versioned, installable dependency:

- **`core`** — db (Postgres + RLS), auth, crypto, ORM, services, observability;
- **gRPC + REST transport** — the agent-plane hub and the operator REST/WS API;
- **base relay processes** — api_server, grpc_server, tunnel_server, ws_gateway,
  worker.

A thin deployment repo installs `cmdop-server` and supplies only the parts you
tailor: **config** (`*.yaml` / env), **alembic migrations**, your **Jarvis
agent** (prompts + tools), your **bots** (telegram / discord / slack), and any
**extensions**. Upgrade the engine by bumping one dependency.

## How it connects

Your machines run the [CMDOP agent](https://cmdop.com/connect) and dial **out** to
this server over gRPC (NAT-friendly — no inbound ports on the machine). Clients
and the dashboard reach it over REST + WebSocket. The server links your fleet and
hosts **Jarvis**, the server-side AI that can coordinate the other agents.

## Why self-host

- **Your network, your data.** The relay and its Postgres live where you put them
  — including air-gapped / on-prem.
- **One dependency, light deploy.** The engine is a single pure-Python wheel; your
  repo stays small — config, migrations, and your own agent/bots on top.
- **Multi-tenant by design.** Postgres RLS isolates fleets; one relay can serve
  many.

---

Built from the CMDOP monorepo `src/` (engine packages only — `jarvis_server`,
`bots`, and `devtools` ship in the deployment repo, not here). Apache-2.0.
