Lukan
AI workstation that codes, manages emails and calendar, automates tasks, browses the web, orchestrates multi-agent pipelines, and connects to WhatsApp, Slack, Discord & Telegram. Built in Rust.
Install / Use
/learn @lukanlabs/LukanREADME
Features
- 10 LLM Providers — Anthropic, OpenAI Codex, GitHub Copilot, Fireworks, Nebius, Ollama Cloud, Zai, Gemini, Lukan Cloud, and any OpenAI-compatible endpoint (vLLM, Ollama, LM Studio)
- Multiple Interfaces — Terminal UI (ratatui), Web UI, Desktop app (Tauri), and CLI
- Browser Automation — Full Chrome DevTools Protocol: navigate, screenshot, click, type, evaluate JS, export PDF
- Plugin System — WhatsApp, Telegram, Slack, Email, Gmail, Google Workspace (Sheets, Docs, Calendar, Drive), Docker Monitor, and more
- Sandboxed Execution — OS-level isolation (bwrap), granular permission modes (Planner/Auto/Manual), sensitive file detection
- E2E Encrypted Relay — Access your workstation remotely with X25519 + AES-GCM encryption
- Background Workers — Scheduled autonomous tasks with cron-style execution
- Persistent Memory — Context compaction, session management, and long-term memory across conversations
- Skills — Markdown-based instruction system for project-specific workflows, compatible with community skill formats
- Pipelines — DAG-based multi-agent workflows with visual editor, parallel execution, and human-in-the-loop approval gates
- Single Binary — No runtime dependencies, instant startup
| Sessions & Agent Tabs | Model Selector | |:---:|:---:| | <img src="examples/img/agent-tabs-sessions.png" width="450"> | <img src="examples/img/model selector.png" width="300"> |
| Embedded Terminal | |:---:| | <img src="examples/img/terminal.png" width="700"> |
| Settings & Tools | Workers | |:---:|:---:| | <img src="examples/img/settings.png" width="300"> | <img src="examples/img/workers.png" width="250"> |
| Pipelines & Approval Gates | |:---:| | <img src="examples/img/pipelines.png" width="500"> |
| Remote Access (Relay) | Terminal TUI | |:---:|:---:| | <img src="examples/img/remote-lukan.png" width="450"> | <img src="examples/img/teminal-tui-lukan.png" width="450"> |
</details>What Lukan Can Do
| Capability | Details | |------------|---------| | LLM Providers | Multi-provider — Anthropic, OpenAI, GitHub Copilot, Fireworks, Gemini, Ollama, and any OpenAI-compatible endpoint | | Interfaces | Terminal UI (ratatui), Web UI, Desktop app (Tauri), CLI | | Embedded Terminal | tmux-backed sessions in Web & Desktop UI — sessions persist across reconnects with scrollback recovery. Falls back to PTY when tmux is not installed | | Browser Automation | CDP native with 10 tools: navigate, screenshot, click, type, evaluate JS, export PDF, tab management | | Messaging Channels | WhatsApp, Telegram, Slack, Discord, Email, Gmail via plugin system | | Google Workspace | Sheets, Docs, Calendar, Slides, Drive via plugins & skills | | Plugin System | Built-in registry, hot-reload, IPC protocol | | Pipelines | DAG-based multi-agent workflows with visual editor, parallel execution, and human-in-the-loop approval gates | | Background Workers | Cron scheduler + daemon for autonomous scheduled tasks | | Sub-agents | Parallel sub-agent execution for complex multi-step tasks | | Skills | Markdown-based instruction system for project-specific workflows | | Long-term Memory | MEMORY.md + context compaction + session checkpoints & rewind | | E2E Encrypted Relay | Remote access via X25519 key exchange + AES-GCM authenticated encryption | | OS-level Sandbox | bubblewrap (bwrap) isolation with configurable allowed paths | | Permission Modes | Planner (human reviews all), Auto (whitelisted tools run freely), Manual (approve each call) | | Sensitive File Detection | Pattern-based blocking for .env, .ssh/, .aws/, credentials, and private keys | | Audio Input | Desktop + Web UI via Whisper plugin (local transcription, GPU/CPU auto-detect) | | Single Binary | Rust, no runtime dependencies, instant startup | | License | MIT — Free, bring your own keys |
Quick Start
Get up and running in 5 steps:
1. Install Lukan
# CLI only (includes TUI + Web UI)
curl -fsSL https://get.lukan.ai/install.sh | bash
# Or with Desktop app
curl -fsSL https://get.lukan.ai/install.sh | bash -s -- --desktop
<p align="center">
<img src="examples/img/install.gif" alt="Install" width="700">
</p>
Or use Docker:
docker pull lukanlabs/lukan
docker run -d -p 3000:3000 --name lukan lukanlabs/lukan
# Enter the container and follow steps 2-5 below
docker exec -it lukan bash
The web UI is accessible at http://localhost:3000. You can also build the image locally with docker build -t lukan ..
2. Authenticate or configure your provider
For OAuth providers (no API key needed):
# OpenAI Codex
lukan codex-auth
# GitHub Copilot
lukan copilot-auth
<p align="center">
<img src="examples/img/codex-auth.gif" alt="Codex Auth" width="700">
</p>
For API key providers:
lukan setup
Enter your API key when prompted (Anthropic, Fireworks, Gemini, Nebius, etc.).
<p align="center"> <img src="examples/img/setup.gif" alt="Setup" width="700"> </p>3. Select which models you want available
Choose which models from your provider will appear in the /model selector:
# Example: Select models from OpenAI Codex
lukan models openai-codex
# Or from Anthropic
lukan models anthropic
# Or any other provider you configured
lukan models <provider>
<p align="center">
<img src="examples/img/codex-models.gif" alt="Model Selection" width="700">
</p>
This opens an interactive selector where you pick which models to make available.
4. Start the agent
Terminal UI (default)
lukan
# or
lukan chat
Web UI — Opens your browser at http://localhost:3000
lukan chat --ui web
Desktop app
lukan chat --desktop
5. Select your model inside the chat
Once inside the chat, type:
/model
This shows the models you selected in step 3. Pick one and start chatting!
Summary: install → auth/setup → select models → chat → /model
Run lukan doctor anytime to check your configuration and troubleshoot issues.
Continue your last session
# Resume your previous chat
lukan chat -c
Browser automation
# Auto-detect and launch a browser
lukan chat --browser
# Use a specific browser
lukan chat --browser chrome
lukan chat --browser edge
# Connect to an already running browser
lukan chat --browser-cdp http://localhost:9222
# Run browser in visible mode (see what the agent does)
lukan chat --browser-visible
# Keep browser profile across sessions
lukan chat --browser --browser-profile persistent
Remote access
# Log in to your relay (access lukan from any browser)
lukan login
# Check relay connection
lukan relay status
Diagnostics
# Show current config, provider, model, and system info
lukan doctor
# List available models for a provider
lukan models anthropic
# Self-update
lukan update
Embedded terminal
The Web and Desktop UIs include a full terminal emulator powered by xterm.js. When tmux is available, sessions are backed by tmux — they persist across page reloads, browser crashes, and reconnects, with full scrollback recovery. Without tmux, terminals fall back to direct PTY.
- Full terminal — run any CLI tool, including other agents (Claude Code, Codex CLI, OpenCode, etc.)
- Multiple terminal tabs with rename support
- Sessions panel in the sidebar to manage and switch between terminals
- Send running processes to background mid-execution
- File explorer with inline preview
Agent tabs & sessions
Run multiple agents in parallel, each with its own context and conversation history. Sessions are saved automatically and can be loaded, rewound, or continued later.
- Multiple agent tabs — work on different tasks simultaneously
- Session checkpoints — rewind to any point in the conversation (CLI)
- Session recovery — resume after disconnects or crashes
- Background processes — long-running commands can be sent to background while the agent continues working
Audio input
Record audio directly in the Web and Desktop UI. Transcription runs locally via the Whisper plugin using whisper.cpp with GPU/CPU auto-detection — no data leaves your machine.
# Install the whisper plugin
lukan plugin install whisper
Remote Access (Relay)
Lukan includes a built-in relay system for accessing your workstation from any browser, anywhere. The connection is end-to-end encrypted — the relay server never sees your data.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│
Related Skills
node-connect
353.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
