{"id":49231436,"url":"https://github.com/lukanlabs/lukan","last_synced_at":"2026-04-24T12:09:18.738Z","repository":{"id":344242254,"uuid":"1164703341","full_name":"lukanlabs/lukan","owner":"lukanlabs","description":"AI workstation that codes, manages emails and calendar, automates tasks, browses the web, orchestrates multi-agent pipelines, and connects to WhatsApp, Slack, Discord \u0026 Telegram. Built in Rust.","archived":false,"fork":false,"pushed_at":"2026-04-24T10:33:20.000Z","size":7795,"stargazers_count":25,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-24T10:35:19.560Z","etag":null,"topics":["agentic-ai","agentic-workflow","ai-agents","assistant","local-ai","open-source","your-own-data"],"latest_commit_sha":null,"homepage":"https://lukan.ai/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukanlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-23T11:42:58.000Z","updated_at":"2026-04-24T01:29:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"73172e11-5e0f-4640-9301-97c82d4883da","html_url":"https://github.com/lukanlabs/lukan","commit_stats":null,"previous_names":["lukanlabs/lukan"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/lukanlabs/lukan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukanlabs%2Flukan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukanlabs%2Flukan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukanlabs%2Flukan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukanlabs%2Flukan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukanlabs","download_url":"https://codeload.github.com/lukanlabs/lukan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukanlabs%2Flukan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32222607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","agentic-workflow","ai-agents","assistant","local-ai","open-source","your-own-data"],"created_at":"2026-04-24T12:09:18.091Z","updated_at":"2026-04-24T12:09:18.731Z","avatar_url":"https://github.com/lukanlabs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"examples/img/icon.png\" alt=\"Lukan\" width=\"120\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"examples/img/logo_text_black.png\" alt=\"Lukan\" width=\"250\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003eThe AI-native agentic workstation. Your desktop, amplified.\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/lukanlabs/lukan/blob/master/LICENSE\"\u003e\u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/lukanlabs/lukan/releases\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/badge/release-v0.1.6-green\"\u003e\u003c/a\u003e\n  \u003cimg alt=\"Rust\" src=\"https://img.shields.io/badge/rust-2024-orange.svg\"\u003e\n  \u003cimg alt=\"Platform\" src=\"https://img.shields.io/badge/platform-linux%20%7C%20macOS%20%7C%20WSL-lightgrey\"\u003e\n  \u003ca href=\"https://docs.lukan.ai\"\u003e\u003cimg alt=\"Docs\" src=\"https://img.shields.io/badge/docs-docs.lukan.ai-blueviolet\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nLukan is an AI agent that turns your terminal, browser, and messaging into one intelligent workspace.\u003cbr\u003e\nMulti-provider, multi-interface, E2E encrypted remote access, background workers, and sandboxed execution.\u003cbr\u003e\nBuilt in Rust. Single binary. No runtime dependencies.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"examples/img/agent-tabs-sessions.png\" alt=\"Lukan — Sessions \u0026 Agent Tabs\" width=\"700\"\u003e\n\u003c/p\u003e\n\n## Features\n\n- **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)\n- **Multiple Interfaces** — Terminal UI (ratatui), Web UI, Desktop app (Tauri), and CLI\n- **Browser Automation** — Full Chrome DevTools Protocol: navigate, screenshot, click, type, evaluate JS, export PDF\n- **Plugin System** — WhatsApp, Telegram, Slack, Email, Gmail, Google Workspace (Sheets, Docs, Calendar, Drive), Docker Monitor, and more\n- **Sandboxed Execution** — OS-level isolation (bwrap), granular permission modes (Planner/Auto/Manual), sensitive file detection\n- **E2E Encrypted Relay** — Access your workstation remotely with X25519 + AES-GCM encryption\n- **Background Workers** — Scheduled autonomous tasks with cron-style execution\n- **Persistent Memory** — Context compaction, session management, and long-term memory across conversations\n- **Skills** — Markdown-based instruction system for project-specific workflows, compatible with community skill formats\n- **Pipelines** — DAG-based multi-agent workflows with visual editor, parallel execution, and human-in-the-loop approval gates\n- **Single Binary** — No runtime dependencies, instant startup\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eScreenshots\u003c/strong\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\n| Sessions \u0026 Agent Tabs | Model Selector |\n|:---:|:---:|\n| \u003cimg src=\"examples/img/agent-tabs-sessions.png\" width=\"450\"\u003e | \u003cimg src=\"examples/img/model selector.png\" width=\"300\"\u003e |\n\n| Embedded Terminal |\n|:---:|\n| \u003cimg src=\"examples/img/terminal.png\" width=\"700\"\u003e |\n\n| Settings \u0026 Tools | Workers |\n|:---:|:---:|\n| \u003cimg src=\"examples/img/settings.png\" width=\"300\"\u003e | \u003cimg src=\"examples/img/workers.png\" width=\"250\"\u003e |\n\n| Pipelines \u0026 Approval Gates |\n|:---:|\n| \u003cimg src=\"examples/img/pipelines.png\" width=\"500\"\u003e |\n\n| Remote Access (Relay) | Terminal TUI |\n|:---:|:---:|\n| \u003cimg src=\"examples/img/remote-lukan.png\" width=\"450\"\u003e | \u003cimg src=\"examples/img/teminal-tui-lukan.png\" width=\"450\"\u003e |\n\n\u003c/details\u003e\n\n## What Lukan Can Do\n\n| Capability | Details |\n|------------|---------|\n| **LLM Providers** | Multi-provider — Anthropic, OpenAI, GitHub Copilot, Fireworks, Gemini, Ollama, and any OpenAI-compatible endpoint |\n| **Interfaces** | Terminal UI (ratatui), Web UI, Desktop app (Tauri), CLI |\n| **Embedded Terminal** | tmux-backed sessions in Web \u0026 Desktop UI — sessions persist across reconnects with scrollback recovery. Falls back to PTY when tmux is not installed |\n| **Browser Automation** | CDP native with 10 tools: navigate, screenshot, click, type, evaluate JS, export PDF, tab management |\n| **Messaging Channels** | WhatsApp, Telegram, Slack, Discord, Email, Gmail via plugin system |\n| **Google Workspace** | Sheets, Docs, Calendar, Slides, Drive via plugins \u0026 skills |\n| **Plugin System** | Built-in registry, hot-reload, IPC protocol |\n| **Pipelines** | DAG-based multi-agent workflows with visual editor, parallel execution, and human-in-the-loop approval gates |\n| **Background Workers** | Cron scheduler + daemon for autonomous scheduled tasks |\n| **Sub-agents** | Parallel sub-agent execution for complex multi-step tasks |\n| **Skills** | Markdown-based instruction system for project-specific workflows |\n| **Long-term Memory** | MEMORY.md + context compaction + session checkpoints \u0026 rewind |\n| **E2E Encrypted Relay** | Remote access via X25519 key exchange + AES-GCM authenticated encryption |\n| **OS-level Sandbox** | bubblewrap (bwrap) isolation with configurable allowed paths |\n| **Permission Modes** | Planner (human reviews all), Auto (whitelisted tools run freely), Manual (approve each call) |\n| **Sensitive File Detection** | Pattern-based blocking for .env, .ssh/, .aws/, credentials, and private keys |\n| **Audio Input** | Desktop + Web UI via Whisper plugin (local transcription, GPU/CPU auto-detect) |\n| **Single Binary** | Rust, no runtime dependencies, instant startup |\n| **License** | MIT — Free, bring your own keys |\n\n## Quick Start\n\nGet up and running in 5 steps:\n\n### 1. Install Lukan\n\n```bash\n# CLI only (includes TUI + Web UI)\ncurl -fsSL https://get.lukan.ai/install.sh | bash\n\n# Or with Desktop app\ncurl -fsSL https://get.lukan.ai/install.sh | bash -s -- --desktop\n```\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"examples/img/install.gif\" alt=\"Install\" width=\"700\"\u003e\n\u003c/p\u003e\n\n**Or use Docker:**\n```bash\ndocker pull lukanlabs/lukan\ndocker run -d -p 3000:3000 --name lukan lukanlabs/lukan\n\n# Enter the container and follow steps 2-5 below\ndocker exec -it lukan bash\n```\n\nThe web UI is accessible at `http://localhost:3000`. You can also build the image locally with `docker build -t lukan .`.\n\n### 2. Authenticate or configure your provider\n\n**For OAuth providers (no API key needed):**\n```bash\n# OpenAI Codex\nlukan codex-auth\n\n# GitHub Copilot  \nlukan copilot-auth\n```\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"examples/img/codex-auth.gif\" alt=\"Codex Auth\" width=\"700\"\u003e\n\u003c/p\u003e\n\n**For API key providers:**\n```bash\nlukan setup\n```\nEnter your API key when prompted (Anthropic, Fireworks, Gemini, Nebius, etc.).\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"examples/img/setup.gif\" alt=\"Setup\" width=\"700\"\u003e\n\u003c/p\u003e\n\n### 3. Select which models you want available\n\nChoose which models from your provider will appear in the `/model` selector:\n\n```bash\n# Example: Select models from OpenAI Codex\nlukan models openai-codex\n\n# Or from Anthropic\nlukan models anthropic\n\n# Or any other provider you configured\nlukan models \u003cprovider\u003e\n```\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"examples/img/codex-models.gif\" alt=\"Model Selection\" width=\"700\"\u003e\n\u003c/p\u003e\n\nThis opens an interactive selector where you pick which models to make available.\n\n### 4. Start the agent\n\n**Terminal UI (default)**\n```bash\nlukan\n# or\nlukan chat\n```\n\n**Web UI** — Opens your browser at http://localhost:3000\n```bash\nlukan chat --ui web\n```\n\n**Desktop app**\n```bash\nlukan chat --desktop\n```\n\n### 5. Select your model inside the chat\n\nOnce inside the chat, type:\n\n```\n/model\n```\n\nThis shows the models you selected in step 3. Pick one and start chatting!\n\n---\n\n**Summary:** `install` → `auth/setup` → `select models` → `chat` → `/model`\n\nRun `lukan doctor` anytime to check your configuration and troubleshoot issues.\n\n### Continue your last session\n\n```bash\n# Resume your previous chat\nlukan chat -c\n```\n\n### Browser automation\n\n```bash\n# Auto-detect and launch a browser\nlukan chat --browser\n\n# Use a specific browser\nlukan chat --browser chrome\nlukan chat --browser edge\n\n# Connect to an already running browser\nlukan chat --browser-cdp http://localhost:9222\n\n# Run browser in visible mode (see what the agent does)\nlukan chat --browser-visible\n\n# Keep browser profile across sessions\nlukan chat --browser --browser-profile persistent\n```\n\n### Remote access\n\n```bash\n# Log in to your relay (access lukan from any browser)\nlukan login\n\n# Check relay connection\nlukan relay status\n```\n\n### Diagnostics\n\n```bash\n# Show current config, provider, model, and system info\nlukan doctor\n\n# List available models for a provider\nlukan models anthropic\n\n# Self-update\nlukan update\n```\n\n### Embedded terminal\n\nThe 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.\n\n- Full terminal — run any CLI tool, including other agents (Claude Code, Codex CLI, OpenCode, etc.)\n- Multiple terminal tabs with rename support\n- Sessions panel in the sidebar to manage and switch between terminals\n- Send running processes to background mid-execution\n- File explorer with inline preview\n\n### Agent tabs \u0026 sessions\n\nRun multiple agents in parallel, each with its own context and conversation history. Sessions are saved automatically and can be loaded, rewound, or continued later.\n\n- Multiple agent tabs — work on different tasks simultaneously\n- Session checkpoints — rewind to any point in the conversation (CLI)\n- Session recovery — resume after disconnects or crashes\n- Background processes — long-running commands can be sent to background while the agent continues working\n\n### Audio input\n\nRecord 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.\n\n```bash\n# Install the whisper plugin\nlukan plugin install whisper\n```\n\n## Remote Access (Relay)\n\nLukan 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.\n\n```\n┌──────────────┐        ┌──────────────┐        ┌──────────────┐\n│   Browser    │◄──────►│  Relay Server│◄──────►│  Your Machine│\n│  (any device)│  E2E   │  (cloud)     │  E2E   │  (lukan)     │\n└──────────────┘  enc.  └──────────────┘  enc.  └──────────────┘\n```\n\n- **E2E Encryption** — X25519 key exchange + AES-256-GCM. The relay only forwards opaque ciphertext.\n- **Google OAuth** — Login with your Google account, no extra credentials to manage.\n- **Full Web UI** — Same interface as local `--ui web`, including agent, terminals, file explorer, and plugins.\n- **No port forwarding** — Works behind NAT, firewalls, and corporate networks.\n\n```bash\n# Authenticate with the relay\nlukan login\n\n# Check connection status\nlukan relay status\n\n# Your workstation is now accessible at your relay URL\n```\n\n## Architecture\n\nLukan is a Cargo workspace with 11 crates (~49K lines of Rust) + a React frontend (~6K lines of TypeScript):\n\n```\nlukan                  CLI entry point and subcommands\nlukan-core             Shared types, config, errors, crypto primitives\nlukan-providers        LLM provider implementations (8 providers)\nlukan-tools            Tool system: Bash, ReadFile, WriteFile, EditFile, Glob, Grep, WebFetch, Browser, Tasks\nlukan-agent            Agent loop, sessions, memory, permission system, sub-agents\nlukan-tui              Terminal UI (ratatui) with markdown rendering and syntax highlighting\nlukan-web              Axum web server with WebSocket streaming and embedded React UI\nlukan-desktop          Tauri desktop app with PTY, audio recording, and native integration\nlukan-browser          Chrome DevTools Protocol client\nlukan-plugins          Plugin discovery, lifecycle, and IPC protocol\nlukan-search           Symbol indexing (tree-sitter) — in development\nlukan-relay            Relay server for E2E encrypted remote access\ndesktop-client/        React + TypeScript frontend (shared across Web, Desktop, and Relay modes)\n```\n\nSee [ARCHITECTURE.md](ARCHITECTURE.md) for details.\n\n## Providers\n\n| Provider | Setup |\n|----------|-------|\n| Anthropic | `lukan setup` or set `ANTHROPIC_API_KEY` |\n| OpenAI Codex | `lukan codex-auth` (OAuth) |\n| GitHub Copilot | `lukan copilot-auth` (OAuth Device Flow) |\n| Fireworks | API key via `lukan setup` |\n| Nebius | API key via `lukan setup` |\n| Ollama Cloud | API key via `lukan setup` |\n| Zai | API key via `lukan setup` |\n| Gemini | API key via `lukan setup` |\n| Lukan Cloud | Coming soon |\n| OpenAI-compatible | Base URL + API key via `lukan setup` (works with vLLM, Ollama, LM Studio) |\n\n## Plugins\n\nPlugins extend lukan with messaging channels and external tools:\n\n```bash\n# Browse and install from the registry\nlukan plugin install\n\n# Install by name\nlukan plugin install whatsapp\n\n# Configure credentials\nlukan skill env whatsapp set BRIDGE_URL ws://localhost:3001\n\n# Start a channel plugin\nlukan plugin start whatsapp\n\n# Check status\nlukan plugin status whatsapp\n\n# View logs\nlukan plugin logs whatsapp\n```\n\n### Available plugins\n\n| Plugin | Type | What it does |\n|--------|------|-------------|\n| **WhatsApp** | Channel | Chat with lukan from WhatsApp (QR auth, groups, audio transcription) |\n| **Email** | Channel | Receive and reply to emails (IMAP/SMTP) |\n| **Gmail** | Tools | Search, read, send, and manage Gmail |\n| **Google Workspace** | Tools | Sheets, Docs, Calendar, Slides, Drive operations |\n| **Docker Monitor** | Channel | Monitor container events and health |\n| **Security Monitor** | Channel | Track security-related system events |\n| **Whisper** | Channel | Local audio transcription via whisper.cpp |\n| **Telegram** | Channel | Chat with lukan from Telegram (Bot API, groups, user allowlist) |\n| **Slack** | Channel | Chat with lukan from Slack (Socket Mode, threads, channel allowlist) |\n| **Discord** | Channel | Chat with lukan from Discord (Gateway API, threads, voice transcription) |\n| **Nano Banana Pro** | Tools | Image generation via Gemini |\n\n## Skills\n\nSkills are markdown instruction files that customize agent behavior per-project:\n\n```bash\n# List discovered skills\nlukan skill list\n\n# Skills live in .lukan/skills/\u003cname\u003e/SKILL.md\nmkdir -p .lukan/skills/deploy\ncat \u003e .lukan/skills/deploy/SKILL.md \u003c\u003c 'EOF'\n---\nname: Deploy\ndescription: Deployment workflow for this project\n---\n# Deploy\n1. Run tests first\n2. Build with `make release`\n3. Deploy to staging before production\nEOF\n```\n\n## Workers\n\nSchedule autonomous background tasks that run on their own:\n\n```bash\n# Create a worker interactively (set prompt, schedule, tools)\nlukan worker add\n\n# List all workers\nlukan worker list\n\n# Browse run history and view output\nlukan worker runs\n\n# Pause/resume a worker\nlukan worker pause\nlukan worker resume\n\n# Start the background daemon (runs scheduled workers)\nlukan daemon start\n\n# Check daemon status\nlukan daemon status\n```\n\n## Security\n\nLukan takes security seriously:\n\n- **Permission Modes**: Planner (human reviews all actions), Auto (whitelisted tools run freely), Manual (approve each call)\n- **Sandbox**: OS-level isolation via bubblewrap (bwrap) with configurable allowed paths\n- **Sensitive File Detection**: Blocks access to `.env`, `.ssh/`, `.aws/`, credentials, and private keys by pattern\n- **E2E Encryption**: Relay connections use X25519 key exchange + AES-GCM authenticated encryption\n- **Plugin Isolation**: Plugins run as separate processes with declared permissions and IPC protocol\n\n## Configuration\n\nConfig lives in `~/.config/lukan/`:\n\n```\n~/.config/lukan/\n  config.json        Main configuration (provider, model, permissions)\n  credentials.json   API keys and tokens (never committed)\n  sessions/          Chat history\n  plugins/           Installed plugins\n  MEMORY.md          Persistent agent memory\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `lukan chat` | Start interactive chat (TUI, Web, or Desktop) |\n| `lukan setup` | Interactive setup wizard (provider, model, API keys) |\n| `lukan doctor` | Show configuration, provider, model, and system diagnostics |\n| `lukan models [provider]` | List and select models for a provider |\n| `lukan plugin install` | Install plugins from the registry |\n| `lukan plugin start \u003cname\u003e` | Start a channel plugin |\n| `lukan plugin status \u003cname\u003e` | Show plugin status and config |\n| `lukan plugin logs \u003cname\u003e` | View plugin logs |\n| `lukan skill list` | List discovered skills |\n| `lukan skill env \u003cname\u003e` | Manage skill environment variables |\n| `lukan worker add` | Create a scheduled worker interactively |\n| `lukan worker list` | List all workers |\n| `lukan worker runs` | Browse run history and view output |\n| `lukan daemon start` | Start the background worker scheduler |\n| `lukan daemon status` | Check if the daemon is running |\n| `lukan sandbox enable` | Enable OS-level sandboxing (bwrap) |\n| `lukan update` | Self-update to the latest version |\n| `lukan login` | Authenticate with relay server (Google OAuth) |\n| `lukan relay status` | Show relay connection status |\n| `lukan codex-auth` | Authenticate with OpenAI Codex (OAuth) |\n| `lukan copilot-auth` | Authenticate with GitHub Copilot (OAuth Device Flow) |\n\n## Development\n\n```bash\n# Build all crates\ncargo build\n\n# Run quality checks\ncargo fmt \u0026\u0026 cargo clippy -- -D warnings \u0026\u0026 cargo test\n\n# Build desktop app (requires bun)\ncd desktop-client \u0026\u0026 bun run build\n\n# Run the TUI in dev mode\ncargo run -- chat\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## Uninstall\n\n**curl install:**\n```bash\nrm ~/.local/bin/lukan ~/.local/bin/lukan-desktop ~/.local/bin/lukan-relay\n```\n\n**AppImage:**\n```bash\nrm Lukan_Desktop.AppImage\nrm ~/.local/bin/lukan\n```\n\n**deb package:**\n```bash\nsudo dpkg -r lukan-desktop\nrm ~/.local/bin/lukan\n```\n\n**Config \u0026 data** (optional, shared across all install methods):\n```bash\nrm -rf ~/.config/lukan ~/.local/share/lukan\n```\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukanlabs%2Flukan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukanlabs%2Flukan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukanlabs%2Flukan/lists"}