One signed binary. Every feature compiled in. Free to run. Install Crowkis →
Official image ↗amd64 · arm64free · no license

One image.
Every feature.
Hardened.

A single hardened Docker image with the whole engine compiled in. Pull it, run it, and free Community edition is live at full power — a license file flips it to Enterprise at boot.

quickstart — ~60s to a cache hit
$ docker pull crowkis/crowkis:latest
✓ pulled · signed · linux/amd64 · linux/arm64

$ docker run -d -p 6379:6379 -p 6380:6380 \
    -v crowkis-data:/data crowkis/crowkis
✓ crowkis up · RESP :6379 · dashboard :6380

$ curl 127.0.0.1:6380/health
{ "status": "ok", "admin_auth": "enabled" }

Three ports, three surfaces

:6379RESP3

Redis wire protocol — crowkis cli or any Redis client.

:6380HTTP

Dashboard + management REST API + /health.

:6381gRPC

h2c — Get / Set / GetStream / Stats / Invalidate.

Four ways in

Make Crowkis part of your stack.

Run the engine with Docker, or reach it from your code with the SDKs and CLI. Pick the one that fits — they all talk to the same cache.

The whole engine in one hardened image — the way to run it in production.

$ docker pull crowkis/crowkis
Run with Docker

Drop-in SDK: sync + async, get_or_compute, streaming. Cache LLM calls in three lines.

$ pip install crowkis
Python guide

Typed client with retry/backoff and a CachedOpenAI wrapper for TS and JS.

$ npm install crowkis
Node guide

The command line — talk to any instance, script it, pipe it. Ships in the binary.

$ crowkis cli
Command reference

Let Claude Code and agents use the cache as a tool over MCP — one config block.

$ crowkis mcp
MCP guide

One command per platform

Install Crowkis.

Native installs through the package manager you already use — or the Docker image, which works today with no setup. Same engine either way.

macOS

Homebrew

$ brew install crowkis/tap/crowkis

Every build is signed, with checksums published alongside the release. Latest stable · macOS · Linux · Windows · Docker.

Step 1 · run it

Pick run or compose.

One docker run for a quick spin, or the hardened compose file for the real thing. Ports publish to localhost only — going public is an explicit choice, never a default you discover.

$ docker pull crowkis/crowkis:latest
Docker Hub & GHCR · signed releases
docker run -d --name crowkis \
  -p 127.0.0.1:6379:6379 \
  -p 127.0.0.1:6380:6380 \
  -p 127.0.0.1:6381:6381 \
  -v crowkis-data:/data \
  crowkis/crowkis:latest
2

Verify it's healthy

Ask the container itself — the health endpoint reports status and whether admin auth is active.

$ curl 127.0.0.1:6380/health
expect "admin_auth": "enabled"
3

Prove the auth boundary

Don't trust it — test it. Unauthenticated management reads must bounce when auth is on.

$ curl -i 127.0.0.1:6380/api/metrics
rejected without a key
4

Talk to it

The binary ships the REPL — or point any Redis client at 6379 and watch the dashboard.

$ docker exec -it crowkis crowkis cli
built-in REPL

Hardened by default

The compose file is the security checklist.

Everything below is the stock deployment shape. You harden it by not editing it.

read_only: true

The container filesystem is immutable. Data lives on the mounted volume; /tmp is tmpfs.

cap_drop: ALL

Every Linux capability dropped. The process needs none of them.

no-new-privileges

Even a compromised process can't gain privileges it didn't start with.

Non-root user

Built into the image — not something you have to remember to configure.

pids_limit: 512

Fork bombs hit a wall.

Localhost-only ports

Published to 127.0.0.1 by default. Going public is an explicit choice.

HEALTHCHECK built in

/health endpoint wired into the image, so orchestrators see real readiness.

Binary-only image

One stripped Rust binary, a non-root user, /data. No shell tooling, no package manager, no supply chain.

Environment reference

The knobs that matter.

None are required — the image boots with sensible defaults. Full reference in the configuration docs.

VariableDefaultWhat it does
CROWKIS_ADMIN_KEYchange-me-admin-keyAuth key for the management API and dashboard metrics.
CROWKIS_AUTH_TOKENchange-me-resp-grpc-tokenBearer token required for RESP and gRPC traffic.
CROWKIS_BIND_ADDR127.0.0.1Published-port bind address. Keep localhost until you mean it.
CROWKIS_MEMORY_LIMIT512mRuntime memory ceiling for the cache process.
CROWKIS_BLOCK_CACHE_BYTES64mBlock cache capacity for hot SSTable reads.
CROWKIS_MAX_CONNECTIONS10000Concurrent connection ceiling.
CROWKIS_LOG_QUERY_PREVIEWS0Keeps prompt text out of logs. On by default, on purpose.
CROWKIS_LICENSE_PATH/etc/crowkis/license.jsonEnterprise license file. Absent = Community edition, free.

Local experiments only: CROWKIS_ALLOW_UNAUTHENTICATED_ADMIN=1 disables the management auth gate. Never set it on anything with a public interface.

Day-2 commands

$ docker pull crowkis/crowkis:latest && docker compose up -d
the entire upgrade path — binary swap, stable on-disk format, no migrations
$ docker compose down
stop, keep data
$ docker compose down -v
stop and remove the data volume

Where to next