Repository navigation
Getting Started
For the normal release installation:
- Linux
x86_64oraarch64 - a shell
curl
The installer downloads a prebuilt binary for supported Linux architectures, so Rust and Node.js are not required for a normal release installation.
Building from source additionally requires:
- Rust / Cargo
- Git
- Node.js
- npm
Other platforms may work from source but are not currently targeted by the release installer.
The recommended installation needs no .env file and no hand-written configuration file.
curl -fsSL https://raw.githubusercontent.com/LazyGreed/kinetix/main/install.sh | bashBy default, the installer:
- Resolves the latest GitHub release.
- Downloads the matching prebuilt binary for
x86_64oraarch64. - Verifies the release SHA-256 checksum when the checksum manifest is available.
- Falls back to a source build if a usable prebuilt release cannot be obtained.
- Installs
kinetixunder~/.local/bin. - Adds the binary directory to your shell
PATHwhen necessary. - Runs
kinetix init. - Creates the configuration, data, and state directories.
- Generates and prints the dashboard admin password once.
Kinetix stores its default state under:
~/.config/kinetix
~/.local/share/kinetix
~/.local/state/kinetix
Set KINETIX_VERSION to a release tag:
curl -fsSL https://raw.githubusercontent.com/LazyGreed/kinetix/main/install.sh \
| KINETIX_VERSION=v0.1.0 bashTo explicitly build the current development branch:
curl -fsSL https://raw.githubusercontent.com/LazyGreed/kinetix/main/install.sh \
| KINETIX_VERSION=main bashA source build requires Rust/Cargo, Git, Node.js, and npm.
The default install prefix is:
~/.local
Override it with:
curl -fsSL https://raw.githubusercontent.com/LazyGreed/kinetix/main/install.sh \
| KINETIX_PREFIX=/custom/prefix bashKinetix intentionally ships without provider presets. Add the upstreams, models, credentials, and prices appropriate for your deployment.
The following example configures Gemini.
kinetix provider add \
--name Gemini \
--base-url https://generativelanguage.googleapis.com/v1beta \
--wire-format gemini \
--auth-scheme custom_header \
--custom-header-name x-goog-api-key \
--api-key "$GEMINI_API_KEY" \
--account-label primaryPassing both --api-key and --account-label creates the provider's first credential account at the same time.
kinetix model add \
--provider Gemini \
--upstream-id gemini-2.5-flash \
--display-name "Gemini 2.5 Flash"Optional model metadata includes context limits, capabilities, and pricing.
See Providers for the full provider and model configuration model.
kinetix key create --name local-client --owner meThe resulting secret begins with:
sk-kinetix-...
The plaintext secret is shown once. Kinetix stores only its hash.
kinetix serveThe default local address is:
http://127.0.0.1:8080
The embedded dashboard is available at:
http://127.0.0.1:8080/admin
Log in with the admin password printed during installation or kinetix init.
curl -s http://127.0.0.1:8080/healthzA healthy instance returns a response similar to:
{
"status": "ok",
"uptime_secs": 3,
"database": "ok",
"data_plane": "serving",
"control_plane": "ok"
}status: ok indicates that the data plane can serve requests.
A degraded control plane does not necessarily make the inference data plane unavailable: Kinetix can continue serving from its in-memory registry snapshot in supported failure scenarios. See Observability for health semantics.
Using the virtual key created earlier:
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Authorization: Bearer sk-kinetix-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": "Say hello from Kinetix."
}
]
}'A successful response confirms the complete path:
client
→ virtual-key authentication
→ model resolution
→ provider account
→ upstream model
→ translated response
Kinetix supports OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages clients.
Use:
http://127.0.0.1:8080/v1
with a Kinetix virtual key.
Example Pi configuration:
{
"providers": {
"kinetix": {
"baseUrl": "http://127.0.0.1:8080/v1",
"apiKey": "sk-kinetix-...",
"api": "openai-completions"
}
}
}Point Anthropic-format clients at:
http://127.0.0.1:8080
Kinetix serves:
POST /v1/messages
Modern coding agents that use the Responses API can use:
POST /v1/responses
See Compatibility for protocol behavior and documented deviations.
See Pi Compatibility for Pi-specific setup and acceptance notes.
Inspect the installation:
kinetix statusRun diagnostics:
kinetix doctorShow the command surface:
kinetix --helpExamples:
kinetix provider --help
kinetix model --help
kinetix account --help
kinetix route --help
kinetix alias --help
kinetix key --helpThe Kinetix binary is both the inference server and the administrative CLI. Administrative commands operate directly on the SQLite control plane and generally work while the server is stopped.
See CLI Reference for the complete command surface.
For Docker deployment:
cp .env.docker.example .env
docker compose up -d --build
docker compose logs kinetix | grep -i passwordAll persistent state is stored under the container's /data volume.
See Docker for the full container workflow.
The default service binds locally. For production, keep Kinetix behind an appropriate authenticated reverse proxy or tunnel rather than exposing the administrative surface directly.
The repository includes:
- a hardened systemd unit
- graceful shutdown/drain behavior
- automatic restart
- Cloudflare Tunnel guidance
- Cloudflare Access guidance
- backup/restore procedures
- upgrade procedures
See Deployment and deploy/README.md.
Using the installed binary:
kinetix uninstallAdditional options:
kinetix uninstall [--yes] [--remove-binary] [--keep-data] [--dry-run]Or use the standalone uninstall script:
curl -fsSL https://raw.githubusercontent.com/LazyGreed/kinetix/main/uninstall.sh | bash- CLI Reference — complete command surface
- Providers — providers, models, capabilities, parameters, and pricing
- Routing and Fallback — account pools, Routes, selection, and fallback
- Authentication — admin and client authentication
- Dashboard — embedded control plane
- Observability — health, metrics, request tracing, and diagnostics
- Deployment — production operation
- Troubleshooting — common operational problems