Getting Started

August 27, 2026 ยท View on GitHub

Windows users: see windows.md for the Windows-specific install path and operational notes. The instructions below are for Linux and macOS.

Install

Download the binary:

curl -fsSL https://raw.githubusercontent.com/gebruder/wirken/main/install.sh | sh

Or build from source. The minimum supported Rust version is declared as rust-version in Cargo.toml and verified in CI on that exact toolchain. You will also need the capnp compiler:

# Ubuntu/Debian
sudo apt-get install -y capnproto

# macOS
brew install capnp

cargo install --path crates/cli

OpenSSL is pulled in as a transitive dependency of some channel SDKs but is built with the vendored feature, so it compiles from source โ€” no system OpenSSL headers are needed and the resulting binary does not link against the host OpenSSL. Outbound HTTPS uses rustls.

Setup

Run the setup wizard:

wirken setup

This walks you through:

  1. Pick a provider. OpenAI, Anthropic, Gemini, Bedrock, Tinfoil, Privatemode, Ollama, or a custom endpoint. Your API key is encrypted immediately.
  2. Pick your channels. Telegram, Discord, Slack, Teams, Matrix, Signal, Google Chat, iMessage, or WhatsApp. Each bot token is encrypted into the vault.
  3. Service install. Optionally install as a systemd/launchd service so wirken starts on login.

16 bundled skills (weather, github, git, tmux, docker, etc.) are installed automatically.

Run

wirken run

This starts wirken. It spawns adapter processes for each channel, starts the WebChat UI at http://localhost:18790, and waits for messages.

Send a test message from your configured channel, or open the WebChat in a browser.

Quick test without a channel

wirken ask -m "what time is it?"

This sends a message directly to the agent and prints the response. No channel setup needed.

Add more channels later

wirken channel add discord
wirken channel add slack

Install skills from the registry

wirken skills search weather
wirken skills install weather

Skills that call the http_request tool declare the credentials.allow and http.post_paths permission fields, which require Wirken 1.10 or later. An older binary refuses to load such a skill (fail-closed), and the failure reads as a parse rejection, so upgrade first if you see one.

Check everything is working

wirken doctor

Next steps