Cordum.io

by cordum-io

Not rated
GitHub

About

The Control Plane for AI Agents

Details

Author
cordum-io
Categories
Communication, Productivity

Setup

Install Cordum.io in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/cordum-io/cordum

Follow the installation instructions in the repository README, then restart your MCP client.

One command stands up the full stack — API gateway, scheduler, safety kernel, workflow engine, context engine, dashboard, NATS, and TLS-secured Redis — with auto-generated secrets, auto-provisioned certificates, and a post-deploy smoke test that exercises a real approval workflow:

git clone https://github.com/cordum-io/cordum.git cd cordum ./tools/scripts/quickstart.sh

Prerequisites:Docker Desktop v4+ (or Engine v20.10+ with Compose v2, ≥ 4 GB RAM allocated), Go 1.26.3+ (for first-run cert generation), andcurl. On Windows use MSYS2 / Git Bash / WSL.

- Dashboard athttp://localhost:8082— log in asadmin/ChangeMe123!(the default dev password, also saved to.envasCORDUM_ADMIN_PASSWORD; change it before exposing the stack).
- Gateway at
http://localhost:8081with a generatedCORDUM_API_KEYin.env.
- TLS CA, server, and client keypairs under./certs/.
- A working approval-gate workflow proven by the built-inplatform_smoke.shrun.

Full walkthrough, platform notes, and troubleshooting:docs/quickstart.md.

Prerequisites:Docker Desktop v4+ or Docker Engine v20.10+ with the Compose v2 plugin (≥ 4 GB RAM allocated),jq(recommended, for parsing API responses), and Go 1.26.3+ (for one-time local cert generation —docker composemounts./certsbut does not create it).

git clone https://github.com/cordum-io/cordum.git cd cordum go run ./cmd/cordumctl generate-certs # writes ./certs/{ca,server,client} export CORDUM_API_KEY=$(openssl rand -hex 32) export REDIS_PASSWORD=$(openssl rand -hex 16) docker compose pull # pulls every Cordum service from ghcr.io docker compose up -d # starts the stack — no image build needed

Pin a specific release by exportingCORDUM_VERSION=1.2.3beforedocker compose pull. Defaults to:latest, which only moves on stable release tags (pre-release suffixes such as-rc.1never promote:latest).

Every release-tag image is signed withcosignkeyless OIDC. The example below verifiesapi-gateway; repeat the same command (swapping the image name) for each of the seven Cordum images before deploying to production — verifying one image does not attest the rest:

cosign verify ghcr.io/cordum-io/cordum/api-gateway:1.2.3 \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ --certificate-identity-regexp 'https://github\.com/cordum-io/cordum/\.github/workflows/docker\.yml@refs/tags/v.*'

Seedocs/deployment/images.mdfor the full image catalogue, a verify-all-images snippet, multi-arch pull instructions, and tag policy.

cp .env.example .env # Edit .env: set CORDUM_API_KEY (or generate: openssl rand -hex 32) export CORDUM_API_KEY="your-key-here" go run ./cmd/cordumctl up open http://localhost:8082
helm install cordum oci://ghcr.io/cordum-io/cordum/charts/cordum \ --namespace cordum --create-namespace \ --set secrets.apiKey=$(openssl rand -hex 32) \ --set redis.auth.password=$(openssl rand -hex 32) \ --set ingress.enabled=true \ --set ingress.className=nginx \ --set ingress.api.host=api.cordum.example.com \ --set ingress.dashboard.host=cordum.example.com

--setvalues land in the Helm release's stored values (and your shell history) — fine for a quick eval, but for production preferredis.auth.existingSecret(seecordum-helm/values.yaml) overredis.auth.password, and patchsecrets.apiKeyinto the rendered Secret out-of-band rather than passing it on the command line; that chart doesn't yet have anexistingSecretequivalent for the API key.

Seecordum-helm/for the full Helm chart reference. The chart is also available onArtifact Hub.

Container images(multi-arch: linux/amd64 + linux/arm64):

Full catalogue, tag policy, cosign verification recipe, and multi-arch notes:docs/deployment/images.md.

Port conflicts?If any port is already in use, either stop the conflicting service or override ports in your.envfile before starting the stack.

# Load the generated API key into this shell (skip if already exported) export CORDUM_API_KEY=$(grep CORDUM_API_KEY .env | cut -d= -f2) # Submit a test job curl -sS --cacert ./certs/ca/ca.crt \ -X POST https://localhost:8081/api/v1/jobs \ -H "X-API-Key: $CORDUM_API_KEY" -H "X-Tenant-ID: default" \ -H "Content-Type: application/json" \ -d '{"topic":"job.default","prompt":"hello"}' # Stop the stack docker compose down # View logs docker compose logs -f api-gateway

For detailed troubleshooting, seedocs/troubleshooting.md.

Once the stack is up, install thedemo-quickstartpack and run the governance demo:

cordumctl pack install ./demo/quickstart/pack cordumctl demo run quickstart

A singlehello, operator!workflow fans out to three topics and exercises every safety-kernel decision class in under 30 seconds:

+--------------------+--------------------------+--------------------+--------- | Step | Topic | Verdict | Reason +--------------------+--------------------------+--------------------+--------- | greet | job.demo-quickstart.greet | ALLOW | Safe… | attempt_delete | job.demo-quickstart.delete-all | DENY | Block… | escalate_admin | job.demo-quickstart.admin | REQUIRE_APPROVAL | Sign… +--------------------+--------------------------+--------------------+---------

Full walkthrough, rule-by-rule explanation, and extension recipe:demo/quickstart/README.md.

Edge Quickstart (Compliance Firewall for Claude Code)

Cordum Edge governs Claude Code tool calls in the developer's terminal — the hook denies risky actions before they run, requires approval on edits, and exports a redacted evidence bundle for every session. Once the platform stack is up (above), point Claude Code at Cordum:

export CORDUM_GATEWAY=https://localhost:8081 export CORDUM_API_KEY=$(grep CORDUM_API_KEY .env | cut -d= -f2) export CORDUM_TENANT_ID=default ./bin/cordumctl edge claude

The wrapper renders a temporarysettings.json, spawnscordum-agentdon a local loopback nonce, and starts Claude Code with the command hook installed. Read .env is denied; Edit/Write requires approval; safe reads pass through untouched. The dashboard shows the live session timeline at/edge/sessions.

For approved destructive actions, Edge does not trust the approval store alone: the ProvenanceGate also requires a resolved approval audit event for the same tenant,approval_ref, andaction_hash. An approval-requested event by itself does not satisfy provenance, and raw prompts, transcripts, and tool payloads are kept out of audit evidence.

Full 30-minute walkthrough:docs/quickstart-edge.md. Reference:[docs/edge/README.md.

Enterprises are rushing to deployAutonomous AI Agents, but they're hitting a wall of risk. According to Gartner,74% of enterprises see AI agents as a new attack vector, and over 40% of agentic AI projects will be canceled due to inadequate risk controls.

The current landscape leaves teams with a choice:
- Restrict agentsto simple, low-value read-only tasks.
- Accept the riskof autonomous agents taking destructive, unmonitored actions.

Without a dedicated governance layer, you're flying blind:

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.