CommandCore
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CommandCorelist my authorized devices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CommandCore
Self-hosted remote computer control for AI and MCP clients.
CommandCore connects AI clients to one or more computers through a vendor-neutral MCP control plane. Devices make outbound connections to the server, retain their own cryptographic identity, and enforce local permission ceilings.
CommandCore is free software licensed under GNU AGPL-3.0-or-later.
Project status: 0.9 release-candidate family. Linux is the primary supported platform. Windows support is a preview. Interactive desktop control is experimental and is not yet part of the stable support promise.
Why CommandCore?
Most computer-control MCP tools focus on one client talking to one machine. CommandCore is designed as a control plane:
ChatGPT -+
Claude --+
Gemini --+
Codex ---+-- MCP + OAuth --> CommandCore -- outbound WSS --> devices
IDE/CLI -+ |
Other ---+ +-- identity and grants
+-- policy and audit
+-- device selection
+-- signed agent lifecycleA single MCP endpoint can expose every device the authenticated account is allowed to use. Adding a device does not require adding another MCP server to each AI client.
Core properties
Self-hosted control plane - server, protocol, agent, and deployment tooling are in this repository.
Vendor-neutral MCP - the control plane does not depend on one AI provider.
Multi-device by design - enumerate, select, and operate authorized devices.
Outbound-only device transport - enrolled devices do not need inbound command ports.
Cryptographic device identity - each agent keeps its Ed25519 private key locally.
Layered authorization - OAuth scope, account-to-device grant, server profile, and device-local ceiling all restrict effective authority.
Privilege separation on Linux - optional FULL_CONTROL uses a separate local privileged helper rather than making the network-facing agent root.
Auditable operations - remote work is associated with identity, device, request, and execution metadata.
Managed long-running jobs - process handles and bounded output survive transport/server reconnects in the native Linux agent.
Signed agent releases - integrity verification, versioned installation, health validation, and rollback are first-class lifecycle concerns.
Related MCP server: Omarchy MCP Server
Security model
CommandCore intentionally does not treat enrollment as authorization.
effective authority =
OAuth scope
AND account -> device grant
AND server permission profile
AND device-local permission ceilingProfiles:
Profile | Meaning |
READ_ONLY | Inspect permitted state and files |
STANDARD | Normal operating-system authority of the agent user |
FULL_CONTROL | Explicit local privileged-helper opt-in |
STANDARD shell access is powerful: it has the same authority as the operating system account running the agent. Run the agent as a dedicated unprivileged user when stronger host separation is required.
Read SECURITY.md, Security model, and Threat model before exposing a deployment to untrusted clients.
Capabilities
The current Linux implementation covers:
filesystem list/stat/read/write/patch/search/copy/move/delete;
shell execution;
managed processes, status, output, and cancellation;
system information and metrics;
upload/download transfer primitives;
Git operations;
device enrollment, revocation, reconnect, and key rotation;
OAuth-protected MCP access and explicit device grants;
signed agent installation/update/rollback;
fleet/canary rollout primitives;
optional privilege-separated Linux FULL_CONTROL.
Interactive screen, mouse, keyboard, clipboard, browser automation, and some platform-specific administration remain experimental or incomplete. The project does not claim support from compilation alone; see the platform matrix.
Quick start
1. Run CommandCore
Requirements: Docker with Compose.
git clone https://github.com/bazobehram/commandcore.git
cd commandcore
cp .env.example .env
# Generate two different secrets and place them in .env:
./scripts/generate-secret.sh # COMMANDCORE_API_TOKEN
./scripts/generate-secret.sh # COMMANDCORE_PANEL_SESSION_SECRET
# Set the deployment URLs in .env, then:
docker compose up -d --build
docker compose psThe public example binds the application port to 127.0.0.1. Public bootstrap
and recovery are disabled by default. For a loopback-only first-time onboarding
window, an operator may deliberately enable bootstrap, configure OAuth/OIDC, test
it, and disable bootstrap again before normal remote operation.
For internet-facing deployments, use HTTPS/WSS behind a reverse proxy and configure an external OAuth/OIDC provider. See Self-hosting, Deployment, and OAuth/MCP.
2. Install an agent
A deployment can publish its signed Linux installer at its own CommandCore URL:
curl -fsSL https://commandcore.example.com/install/linux | shThe installer verifies the signed release manifest and artifact, creates a versioned user installation, configures a systemd user service, and opens the device-enrollment flow. Replace commandcore.example.com with your deployment.
See Installation for upgrade, rollback, uninstall, and advanced installation details.
3. Connect an MCP client
Use the deployment MCP endpoint:
https://commandcore.example.com/mcpThen authenticate with the configured OAuth/OIDC provider and grant only the devices and scopes the client needs.
Client guides:
Client product capabilities change independently of CommandCore. Each guide distinguishes protocol support from live acceptance evidence.
Platform status
Platform | Status | Notes |
Linux x86_64 | Supported candidate | Python reference + native Rust agent |
Linux ARM64 | Supported candidate | Native Rust agent |
Windows | Preview | Core enrollment/runtime work exists; release gates remain |
macOS | Planned | No supported agent release yet |
Interactive desktop | Experimental | Not part of stable support promise |
CommandCore and Desktop Commander
CommandCore is not a fork of Desktop Commander. The projects solve overlapping but different problems: Desktop Commander has a mature local computer-tool surface, while CommandCore focuses on a self-hosted, multi-device remote control plane with explicit identity, grants, policy, and agent lifecycle.
The comparison is intentionally factual rather than adversarial. See CommandCore and Desktop Commander.
Documentation
Start with the documentation index. Important references:
Contributing
Contributions are welcome. Before opening a pull request, read CONTRIBUTING.md.
The project uses review-first development:
changes arrive through pull requests;
CI must pass;
security-boundary changes require explicit security review;
protocol changes require compatibility notes and tests;
claims about platform support require real acceptance evidence;
commits must carry a Signed-off-by line under the Developer Certificate of Origin policy described in CONTRIBUTING.md.
Sensitive vulnerabilities must not be reported in public issues. Follow SECURITY.md.
License
CommandCore is licensed under the GNU Affero General Public License, version 3 or later.
If you modify CommandCore and make the modified program available to users over a network, review the AGPL source-availability requirements that apply to that use. Third-party dependencies retain their own licenses; see THIRD_PARTY_NOTICES.md and dependency licensing.
This server cannot be deployed
Maintenance
Related MCP Connectors
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to manage an entire fleet of servers over SSH through MCP, fanning a single intent out across many hosts with target expressions while enforcing a policy engine, approval gates, and tamper-evident audit logs. Supports rolling execution with circuit breakers, cross-host diffing, bulk file transfer, tmux sessions, and YAML workflows.10 npm14AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to remotely dispatch AI agents and use file/system tools on an Omarchy VM over authenticated Streamable HTTP, replacing SSH-based pipelines.MIT
- AlicenseNot gradedqualityBmaintenancePublishes a single self-hosted MCP endpoint that lets AI apps reach all of your machines through outbound-only device agents, so they can read, write, and run commands within permitted folders on each device with per-key access levels and folder/device scoping. Every allowed or denied call is checked against the app's key and recorded in an audit log, with support for HTTPS/tunnels and OAuth for web-based clients.MIT
- AlicenseNot gradedqualityBmaintenanceEnables an agent to search approved MCP integrations and expose only the tools a given task needs, signing the user in once via browser-based OAuth and enforcing scopes, effects and budgets in code. It also acts as a single gateway connection so existing hosts can reach many servers with per-tenant isolation and audit events.MIT