mcp server
klex
Meet Klex Bots - Your own team of digital coworkers. Fully autonomous agents that work like your team does. Self-hostable and model-agnostic.
Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- Node.js 20 or newer
{
"mcpServers": {
"stagewise-io-klex": {
"command": "npx",
"args": [
"-y",
"@klex/mcp-proxy-sdk"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 17, 2026An isolated agent that excels at memory, self-improvement, and efficient orchestration.
Installation
macOS and Linux:
curl -fsSL https://raw.githubusercontent.com/stagewise-io/klex/main/install.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/stagewise-io/klex/main/install.ps1 | iex
The default installer resolves the dedicated channel-stable manifest; nightly
and exact-version installs use their own release URLs. It verifies the archive's
SHA-256 and installs into a versioned directory behind a current link, so
upgrades never overwrite a running install. It then runs klex --verify-native to prove the
native runtime dependencies actually load on your machine. It never uses sudo
and writes nothing outside your home directory.
Supported: macOS on Apple Silicon and Intel, glibc-based Linux on ARM64 and x64, Windows on x64. Windows ARM64 gets the x64 build under emulation. musl-based Linux (Alpine) is not supported and is detected rather than half-installed.
Self-update
Installer-managed interactive sessions check their installed channel for a newer
release at startup and then at a bounded interval. If one is available, the TUI
shows a persistent banner: press u to update and restart, or n to hide
that version for the rest of the run. The Usage screen uses g.
The check is opportunistic. Offline, unavailable, stale, and malformed release metadata does not interrupt startup. Self-update is disabled for development runs, manually extracted archives, malformed or moved installations, unsupported targets, and headless mode.
An accepted update runs in the background. Klex downloads the installer from the
exact release commit, invokes it non-interactively for the receipt's install root,
and leaves PATH configuration untouched. The installer verifies the archive and
native runtime before moving current; failures leave the active version usable.
Only one install or uninstall transaction may operate on an install root at a
time. On success, Klex closes active resources, releases the agent-directory lock,
and starts the new executable through current with the original arguments,
environment, working directory, and terminal streams. Update and restart aborts
in-flight agent work; it is not a live handoff.
After restart, the new binary acquires the agent-directory lock and validates all local data before services start. Required forward migrations run from a recovery checkpoint; a failed migration restores that checkpoint and aborts startup. An incompatible downgrade refuses to start without modifying data. Checkpoints are disaster recovery and may lose work created after they were taken; they are not a downgrade or history-merging mechanism.
Options
| macOS and Linux | Windows | Meaning |
|---|---|---|
--version <x.y.z> | -Version <x.y.z> | Install an exact version instead of the newest release. Also settable as KLEX_VERSION |
--install-dir <path> | -InstallDir <path> | Install root. Default: ${XDG_DATA_HOME:-~/.local/share}/klex, or %LOCALAPPDATA%\Klex. Also settable as KLEX_INSTALL_DIR |
--no-modify-path | -NoModifyPath | Leave shell startup files and the user PATH untouched |
--uninstall | -Uninstall | Remove the installation |
KLEX_HOME | KLEX_HOME | Agent data root. Default: ~/.klex |
A piped script receives no arguments, so options have to be handed to the shell
itself. KLEX_VERSION=... curl ... sets the variable for curl, not for the
installer:
curl -fsSL https://raw.githubusercontent.com/stagewise-io/klex/main/install.sh | sh -s -- --version 0.1.1
The Windows script takes PowerShell-style parameters, and a piped script cannot take parameters at all, so pass them through a script block:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/stagewise-io/klex/main/install.ps1))) -NoModifyPath
Uninstalling
curl -fsSL https://raw.githubusercontent.com/stagewise-io/klex/main/install.sh | sh -s -- --uninstall
Uninstalling removes the program and its PATH entry. It deliberately leaves
KLEX_HOME (~/.klex by default) in place, because that directory holds your
configuration, credentials, enrollment state, and history. Delete it yourself if
you want it gone.
Manual installation
Download the archive for your operating system and architecture from
GitHub Releases, verify it against the published checksum, and
extract the complete directory. Klex ships as a relocatable directory because
its executable loads native runtime dependencies from a sibling node_modules;
copying only the executable out of it will not work.
./klex --help
.\klex.exe --help
Release operators should see apps/klex/RELEASING.md.
Container image
Each release also ships a headless image for linux/arm64 and linux/amd64:
docker run -d --read-only --tmpfs /tmp -v klex-data:/data \
--stop-timeout 330 ghcr.io/stagewise-io/klex:stable
The volume needs /data/agent/config.json before the first start, and only one
container may use a volume at a time. See
apps/klex/container/README.md for the full
contract.
Klex is computer-agnostic
By default, Klex only has access to one dedicated, isolated data-directory on the machine it's running on. Every other connection to outside environments and machines is established via MCP and an MCP-Extension:
- Talking to you via Telegram, Discord or Slack
- Research on the Internet using Web-Search
- Orchestrating Claude Code agents on another remote VM
- Updating an Excel-Sheet on your Laptop
- ...
This allows interoperability between various environments, machines and tools you're working with that do not run on the same machine as Klex. Connecting your local Chrome Browser to a remote Klex is just a few clicks; Provisioning a fresh Windows VM to let Klex run platform-specific code can be done in a minute without redeployment; Or letting Klex fix your remote dev server is possible without spawning the Klex on the same machine.
Klex is self-improving:
After every task, Klex will reflect on its actions - and update its internal understanding and memory to do the task more efficiently the next time.
Klex presents one durable agent
Incoming messages from every connected channel enter the same durable default session. Model chats remain private execution units rather than user-managed conversations. Extensions can explicitly create isolated child sessions when a task needs separate context, tools, or model behavior.
Klex is model-aware:
Klex knows about its available models and their tradeoffs:
- Just need to query some info -> Klex will use a flashy model to reduce latency
- Need to do market research -> Klex will use smart, available models to improve accuracy
License
Klex is licensed under the Apache License 2.0.