Back to rankings

Stack-Cairn/LiveAgent

TypeScript

A fully functional AI Agent desktop client that supports Webui access and can be creatively customized and expanded!

ai-agentsai-toolsclaude-codeclaude-desktopcodexcodex-appdesktop-apphermeshermes-agentmcpoepnclawopen-source
Star Growth
Stars
1.1k
Forks
103
Weekly Growth
โ€”
Issues
7
1.1k1.1k
Jul 1Jul 7Jul 14Jul 20
Artifactsnpmnpm install liveagent
README

LiveAgent

LiveAgent

Your Local-First AI Agent Desktop
Multi-model access ยท Local tool execution ยท MCP & Skills ecosystem ยท Remote Gateway

English | ็ฎ€ไฝ“ไธญๆ–‡

Platform Tauri React Rust Go License

Core Features โ€ข Download & Deployment โ€ข FAQ โ€ข Docs


๐ŸŒŸ Special Thanks

LINUX DO

For all things AI, head to LINUX DO! Wishing the community ever greater success~


PackyCode PackyCode is a reliable, efficient, and professional API relay service provider, offering relay services for Claude Code, Codex, Gemini, Chinese domestic models, and more โ€” a long-established, top-tier relay. The vast majority of the model resources used to develop this software were provided by PackyCode โ€” thank you, Laonong! Register here to get started!
RightCode Right Code provides stable relay services for Claude Code, Codex, Gemini, Chinese domestic models, and more. Invoices are available upon top-up, and enterprise and team users receive dedicated one-on-one support. The remaining model resources used to develop this software were provided by RightCode โ€” thanks to the RC site owner and the support team! Register here to get started!
Cubence Cubence is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more, with pay-as-you-go billing. Thanks to Cubence for supporting this project! Register here to get started!

๐Ÿค Come Build With Us!

LiveAgent QQ Group

Scan the QR code to join our QQ group and help drive LiveAgent development!
(Why a QQ group? It just packs a few more features than a WeChat group~)


Why LiveAgent?

LiveAgent is a local-first AI agent desktop client. It deeply integrates large language model reasoning with local system tools, so the AI can genuinely operate your file system, run commands, and manage scheduled tasks โ€” while the Gateway enables remote access and collaboration.

  • An agent that actually gets things done โ€” beyond chat: read and write files, make precise edits, run Bash, and supervise long-running processes
  • A fully open ecosystem โ€” bridge any external tool via the MCP protocol, and load Skills packages on demand
  • Local and remote, both โ€” the desktop app works fully standalone; deploy the Gateway and control it from any browser

Core Features

๐Ÿง  Multi-Model & Chat

  • Multi-model routing โ€” Claude (Anthropic), Codex (OpenAI), and Gemini protocols, with custom Base URL support for third-party compatible services
  • Rich rendering โ€” streaming Markdown with built-in KaTeX math, Mermaid diagrams, and Monaco code preview
  • History compaction โ€” dual-layer Segment + Summary Checkpoint persistence keeps long conversations from losing context
  • Internationalization โ€” built-in i18n multi-language framework

๐Ÿ”ง Local Tool Execution

  • Full file-system capabilities โ€” precise Read / Write / Edit / Delete, plus Glob / Grep pattern and regex search
  • Bash & long-running processes โ€” non-interactive command execution (cwd / timeout), with ManagedProcess supervising dev servers and other resident tasks
  • Sub-agent delegation โ€” independent sub-agents execute in parallel with worktree isolation and automatic merging
  • Tunnel exposure โ€” TunnelManager exposes local services to the public internet in one click

๐Ÿงฉ MCP & Skills Ecosystem

  • MCP protocol bridging โ€” the Tauri side natively bridges any stdio / http MCP server for unlimited tool extension
  • Skills packages โ€” progressive disclosure and on-demand loading, with install / create / package support and the ClawHub ecosystem

๐Ÿ’พ Memory & Automation

  • Persistent memory โ€” Markdown + SQLite FTS full-text search for cross-session knowledge management
  • Scheduled tasks โ€” bash / http / prompt cron job types, executed automatically in the background

๐ŸŒ Remote Gateway

  • Access from any browser โ€” Go gateway (WebSocket + Protobuf) with a WebUI for remotely controlling the local agent
  • Disconnect recovery โ€” a bounded seq window replays short outages, with desktop-side persistence as the safety net

Download & Deployment

Installers are automatically built, signed, and published by GitHub Actions โ€” grab the latest version from GitHub Releases.

System Requirements

Platform Requirements
macOS Both Intel (x64) and Apple Silicon (aarch64) architectures
Windows x64; requires the WebView2 runtime (bundled with Windows 11)
Linux x86_64; requires WebKitGTK 4.1 (Ubuntu 22.04+ / Debian 12+, etc.)

macOS

Download the DMG matching your chip from Releases, open it, and drag LiveAgent into Applications:

  • Apple Silicon (M-series): LiveAgent-<version>-macOS-aarch64.dmg
  • Intel: LiveAgent-<version>-macOS-x64.dmg

The installer is signed and notarized by Apple โ€” no manual security override is needed on first launch.

Windows

Pick an installation method from Releases:

Method File Best for
Setup wizard LiveAgent-<version>-Windows-x64-Setup.exe Most users
MSI package LiveAgent-<version>-Windows-x64.msi Enterprise distribution / silent install
Portable LiveAgent-<version>-Windows-x64-portable.zip No install โ€” unzip and run

Linux

Choose by distribution from Releases:

Format Distributions Install
AppImage Any distribution chmod +x, then run directly
DEB Debian / Ubuntu family sudo dpkg -i LiveAgent-<version>-Linux-x86_64.deb
RPM Fedora / openSUSE family sudo rpm -i LiveAgent-<version>-Linux-x86_64.rpm

Need Remote Access? Deploy the Gateway

The desktop app works out of the box and depends on no server. Deploy the Gateway only if you want to control your local agent from a browser.

Note: when deployed behind an Nginx reverse proxy, set the Gateway address on the Settings โ†’ Remote page to the HTTPS URL and use port 443.

# Pull the image (built by GitHub Actions, multi-arch: amd64 / arm64)
docker pull ghcr.io/stack-cairn/liveagent-gateway:latest

# Run in the background (HTTP/WebSocket โ†’ host 3000)
docker run -d \
  --name liveagent-gateway \
  --restart unless-stopped \
  -p 3000:8080 \
  -e LIVEAGENT_GATEWAY_TOKEN=your-token \
  ghcr.io/stack-cairn/liveagent-gateway:latest

One-command upgrade to the latest version โ€” pull the new image โ†’ remove the old container โ†’ recreate it with the same arguments (if you changed the port mappings or token, adjust the arguments below accordingly):

docker pull ghcr.io/stack-cairn/liveagent-gateway:latest \
  && docker rm -f liveagent-gateway \
  && docker run -d \
    --name liveagent-gateway \
    --restart unless-stopped \
    -p 3000:8080 \
    -e LIVEAGENT_GATEWAY_TOKEN=your-token \
    ghcr.io/stack-cairn/liveagent-gateway:latest \
  && docker image prune -f
Nginx reverse proxy configuration โ€” reference for custom domains / TLS

Since protocol v2, all traffic โ€” the WebUI, the HTTP API, and the WebSocket links of both the browser and the desktop app โ€” goes through the single HTTP port (default 3000).

WebSocket upgrades happen on several paths (/ws/v2, /ws/v2/agent, /ws/v2/terminal, and tunnels under /t/), so the simplest correct setup enables the upgrade on the whole vhost:

# WebUI SPA/static/API + every WebSocket link (browser and desktop)
location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;

    # WebSocket upgrade
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    # Required: the Gateway's same-origin check compares the browser's
    # Origin header against X-Forwarded-Proto + Host
    proxy_set_header Host $host;
    proxy_set_header Authorization $http_authorization;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # The Gateway pings every WebSocket connection every 15s,
    # so a generous-but-finite timeout is enough
    proxy_read_timeout 300s;
    proxy_send_timeout 300s;
    proxy_buffering off;
}

The upstream port maps to the host port from the docker run above: HTTP/WebSocket 3000 (inside the container, HTTP actually listens on PORT=8080). The server block needs listen 443 ssl; and a client_max_body_size large enough for attachment uploads (e.g. 100m).

Build from Source

Expand the Development Guide below for the full set of Make commands.

Architecture Overview โ€” diagram & tech stack
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Browser WebUI                          โ”‚
โ”‚              React + Vite + WebSocket + Gateway API           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚ WebSocket / HTTP
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       Agent Gateway                           โ”‚
โ”‚    Go ยท WebSocket ยท HTTP ยท Session Manager ยท Event Store     โ”‚
โ”‚               (Railway / Docker / self-hosted)                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚ WebSocket v2 (bidirectional stream)
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Agent GUI                              โ”‚
โ”‚                   Tauri 2 ยท React 19 ยท Rust                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Models   โ”‚ Runtime    โ”‚ Tools     โ”‚ Skills     โ”‚ Memory/Cron โ”‚
โ”‚ pi-ai    โ”‚ multi-turn โ”‚ FS/Bash/  โ”‚ progressiveโ”‚ SQLite+MD   โ”‚
โ”‚ + Codex  โ”‚ + SubAgent โ”‚ MCP bridgeโ”‚ + Hub      โ”‚ FTS index   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tech Stack

Component Technology
Agent GUI ยท Framework Tauri 2 + React 19 + TypeScript 6
Agent GUI ยท Build Vite 8 + pnpm
Agent GUI ยท Styling Tailwind CSS 4 + Radix UI
Agent GUI ยท Rendering streamdown + KaTeX + Mermaid + Monaco Editor
Agent GUI ยท Backend Rust + Tokio + SQLite (rusqlite) + WebSocket (tokio-tungstenite)
Agent GUI ยท LLM @earendil-works/pi-ai ยท @openai/codex-sdk ยท claude-agent-sdk
Gateway ยท Language Go 1.25
Gateway ยท Protocols WebSocket + Protobuf + HTTP
Gateway ยท Web UI React + Vite + Tailwind CSS (embedded)
Gateway ยท Deployment Docker multi-stage ยท Railway CI/CD
Development Guide โ€” common Make commands (run make help for the full list)
Command Description
make dev Start the Tauri development environment
make build Build the desktop app
make dev-gateway Start the Gateway dev server
make dev-webui Start the WebUI dev server
make gateway-build Build the Gateway binary
make gateway-docker-build Build the Docker image
make gateway-docker-smoke Build + health check
make desktop-build-macos-release macOS signed release build
make build-linux Linux amd64 gateway
make build-linux-arm Linux arm64 gateway
make proto Regenerate Protobuf code
make clean Clean build artifacts
Project Structure โ€” directory tree
LiveAgent/
โ”œโ”€โ”€ crates/
โ”‚   โ”œโ”€โ”€ agent-gui/                # Desktop client
โ”‚   โ”‚   โ”œโ”€โ”€ src/                  # React frontend
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ components/       #   UI components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lib/              #   Core logic (chat, tools, skills, memory)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ pages/            #   Pages (Chat, Settings)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ i18n/             #   Internationalization
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ prompt/           #   System prompt templates
โ”‚   โ”‚   โ””โ”€โ”€ src-tauri/            # Rust backend (Tauri)
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ agent-gateway/            # Go gateway service
โ”‚       โ”œโ”€โ”€ cmd/gateway/          #   Entry point
โ”‚       โ”œโ”€โ”€ internal/             #   Core implementation
โ”‚       โ”œโ”€โ”€ proto/v1/             #   Protobuf definitions
โ”‚       โ””โ”€โ”€ web/                  #   Embedded WebUI
โ”‚
โ”œโ”€โ”€ docs/                         # Project docs
โ”‚   โ”œโ”€โ”€ architecture/             #   Architecture design
โ”‚   โ”œโ”€โ”€ features/                 #   Feature guides
โ”‚   โ””โ”€โ”€ operations/               #   Operations & deployment
โ”‚
โ”œโ”€โ”€ scripts/release/              # Release automation
โ”œโ”€โ”€ .github/workflows/            # CI/CD (CI + Desktop Release + Gateway Docker)
โ”œโ”€โ”€ Dockerfile                    # Gateway container image
โ”œโ”€โ”€ Makefile                      # Build commands
โ””โ”€โ”€ Cargo.toml                    # Rust workspace

FAQ

Does my API key ever leave my machine?

No. Keys are stored locally on the desktop side only. The Gateway is a pure protocol relay โ€” it never accesses the file system and never stores any credentials.

Do I have to deploy the Gateway?

No. The desktop client works standalone with all local capabilities; deploy the Gateway only when you need browser-based remote access to your local agent.

Which models are supported?

Claude (Anthropic), Codex (OpenAI), and Gemini protocols are built in, plus custom Base URL support for any compatible third-party service.

Will long conversations / disconnects lose context?

No. The desktop app persists the full history with Segment + Summary Checkpoints; the Gateway replays short disconnects through a bounded seq window and converges automatically after reconnecting.


Contributing

Issues and pull requests are welcome! See the Development Guide for setting up a dev environment.

Before submitting a PR, make sure all of the following checks pass (they match the CI gates):

Desktop client ยท crates/agent-gui

  1. Type check & build pass: pnpm build
  2. Lint passes: pnpm lint
  3. Frontend unit tests pass: pnpm test:frontend (also run pnpm test:release when touching release scripts)
  4. Rust backend check passes: cargo check --manifest-path crates/agent-gui/src-tauri/Cargo.toml --tests (run from the repo root)

Gateway ยท crates/agent-gateway (if changed)

  1. Go unit tests pass: go test ./...
  2. WebUI build / lint / tests pass: pnpm build && pnpm lint && pnpm test (run in web/)
  3. Regenerate and commit artifacts after proto changes: make proto

Cross-frontend consistency

  • Mirrored files between GUI and WebUI must be byte-identical: node scripts/check-mirror.mjs
  • Keep the diff clean (no trailing whitespace): git diff --check

๐Ÿ‘ฅ Contributors

Thanks to everyone who has contributed to LiveAgent!

Contributors

Star History

Star History Chart

License

MIT ยฉ StackCairn

Related repositories
affaan-m/ECC

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

JavaScriptnpmMIT Licenseai-agentsanthropic
ecc.tools
231.9k35.4k
NousResearch/hermes-agent

The agent that grows with you

PythonPyPIMIT Licenseaiai-agent
hermes-agent.nousresearch.com
218.5k41.3k
firecrawl/firecrawl

The API to search, scrape, and interact with the web at scale. ๐Ÿ”ฅ

TypeScriptnpmGNU Affero General Public License v3.0aicrawler
firecrawl.dev
154.1k8.8k
langchain-ai/langchain

The agent engineering platform.

PythonPyPIMIT Licenseaianthropic
docs.langchain.com/langchain/
142.3k23.7k
google-gemini/gemini-cli

An open-source AI agent that brings the power of Gemini directly into your terminal.

TypeScriptnpmApache License 2.0geminigemini-api
geminicli.com
106.1k14.3k
browser-use/browser-use

๐ŸŒ Make websites accessible for AI agents. Automate tasks online with ease.

PythonPyPIMIT Licensellmai-agents
browser-use.com
106k11.7k
Graphify-Labs/graphify

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.

PythonPyPIMIT Licenseclaude-codegraphrag
graphify.com
93.3k9k
thedotmack/claude-mem

Persistent Context Across Sessions for Every Agent โ€“ Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More

JavaScriptnpmApache License 2.0aiai-agents
claude-mem.ai
88.2k7.7k
DietrichGebert/ponytail

Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.

JavaScriptnpmMIT Licenseagent-skillsai-agents
ponytail.dev
87.4k4.8k
infiniflow/ragflow

RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs

GoGo ModulesApache License 2.0aiai-agents
ragflow.io
85.6k10k
nexu-io/open-design

๐ŸŽจ The open-source Claude Design alternative. ๐Ÿ–ฅ๏ธ Local-first desktop app. ๐Ÿ–ผ๏ธ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video โ€” real files, HTML/PDF/PPTX/MP4 export. ๐Ÿค– Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen & 20+ CLIs via BYOK.

TypeScriptnpmApache License 2.0ai-agentsai-design
open-design.ai
80.5k9.3k
bytedance/deer-flow

An open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.

PythonPyPIMIT Licenseagentagentic
deerflow.tech
77.6k10.6k