{"id":49145543,"url":"https://github.com/shiwenwen/hope-agent","last_synced_at":"2026-06-06T08:00:39.570Z","repository":{"id":352363859,"uuid":"1180971499","full_name":"shiwenwen/hope-agent","owner":"shiwenwen","description":"会记忆、能成长的随身 AI 助手 · 桌面 / 云端 / IM 随叫随到，手机远程也能连 | Personal AI that remembers and grows — lives on desktop, self-hosted server and every IM, reachable anywhere","archived":false,"fork":false,"pushed_at":"2026-05-06T04:07:03.000Z","size":26491,"stargazers_count":329,"open_issues_count":1,"forks_count":37,"subscribers_count":21,"default_branch":"main","last_synced_at":"2026-05-06T06:21:10.438Z","etag":null,"topics":["agent","ai","ai-assistant","anthropic","chatbot","claude","claw","codex","desktop-app","gemini","harness","hermes-agent","llm","local-ai","mcp","openai","openclaw","personal"],"latest_commit_sha":null,"homepage":null,"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/shiwenwen.png","metadata":{"files":{"readme":"README.en.md","changelog":"CHANGELOG.md","contributing":null,"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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-13T15:57:46.000Z","updated_at":"2026-05-06T06:07:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shiwenwen/hope-agent","commit_stats":null,"previous_names":["shiwenwen/hope-agent"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/shiwenwen/hope-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiwenwen%2Fhope-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiwenwen%2Fhope-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiwenwen%2Fhope-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiwenwen%2Fhope-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shiwenwen","download_url":"https://codeload.github.com/shiwenwen/hope-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiwenwen%2Fhope-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32810382,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["agent","ai","ai-assistant","anthropic","chatbot","claude","claw","codex","desktop-app","gemini","harness","hermes-agent","llm","local-ai","mcp","openai","openclaw","personal"],"created_at":"2026-04-22T03:34:37.746Z","updated_at":"2026-06-06T08:00:39.562Z","avatar_url":"https://github.com/shiwenwen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"Hope Agent\" width=\"200\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eHope Agent\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA desktop AI assistant that hands off across your devices and gets to know you better the more you use it — also runs headless, on a NAS or in the cloud.\u003c/strong\u003e\u003cbr/\u003e\n  Remembers you · Grows over time · Deeply OS-integrated · Reachable from every chat app you use\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/shiwenwen/hope-agent/actions/workflows/rust.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/shiwenwen/hope-agent/rust.yml?branch=main\u0026style=flat-square\u0026logo=githubactions\u0026logoColor=white\u0026label=CI\" alt=\"CI status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/shiwenwen/hope-agent/releases\"\u003e\u003cimg src=\"https://img.shields.io/badge/macOS-000000?style=flat-square\u0026logo=apple\u0026logoColor=white\" alt=\"macOS\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/shiwenwen/hope-agent/releases\"\u003e\u003cimg src=\"https://img.shields.io/badge/Linux-experimental-FFA500?style=flat-square\u0026logo=linux\u0026logoColor=black\" alt=\"Linux (experimental)\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/shiwenwen/hope-agent/releases\"\u003e\u003cimg src=\"https://img.shields.io/badge/Windows-experimental-FFA500?style=flat-square\u0026logo=data:image/svg%2Bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0wIDMuNDQ5TDkuNzUgMi4xdjkuNDUxSDBtMTAuOTQ5LTkuNjAyTDI0IDB2MTEuNEgxMC45NDlNMCAxMi42aDkuNzV2OS40NTFMMCAyMC42OTlNMTAuOTQ5IDEyLjZIMjRWMjRsLTEyLjktMS44MDEiLz48L3N2Zz4=\" alt=\"Windows (experimental)\"\u003e\u003c/a\u003e\n  \u003ca href=\"#run-modes\"\u003e\u003cimg src=\"https://img.shields.io/badge/Web%20GUI-browser-4F46E5?style=flat-square\u0026logo=googlechrome\u0026logoColor=white\" alt=\"Web GUI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.rust-lang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Rust-edition%202021-dea584?style=flat-square\u0026logo=rust\u0026logoColor=white\" alt=\"Rust\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://tauri.app/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Tauri-2-24C8DB?style=flat-square\u0026logo=tauri\u0026logoColor=white\" alt=\"Tauri\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://react.dev/\"\u003e\u003cimg src=\"https://img.shields.io/badge/React-19-61DAFB?style=flat-square\u0026logo=react\u0026logoColor=black\" alt=\"React\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green?style=flat-square\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./README.md\"\u003e简体中文\u003c/a\u003e · \u003cstrong\u003eEnglish\u003c/strong\u003e\n\u003c/p\u003e\n\n---\n\n**Hope Agent** is an AI assistant built to stay simple, stable, and low-maintenance. The same conversation hands off seamlessly between your devices and chat apps, and gets better the more you use it — cross-session memory accumulates, idle time gets spent organizing what mattered, and the things you've done crystallize into reusable skills. One native installer, GUI templates for the major model providers baked in, paste an API key and you're chatting; on desktop it can also observe and control your computer after you grant permission (currently macOS only); it also runs as a background service on a NAS, home server, or cloud VM, staying reachable through your IM apps wherever it lives.\n\n## Contents\n\n- [Why Hope Agent](#why-hope-agent)\n- [Highlights](#highlights)\n- [Quick Start](#quick-start)\n  - [Install Locally](#install-locally)\n  - [Self-hosting (Docker)](#self-hosting-docker)\n  - [For developers](#for-developers)\n- [Run Modes](#run-modes)\n- [Ecosystem](#ecosystem)\n- [Project Structure](#project-structure)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n- [Community](#community)\n- [Acknowledgements](#acknowledgements)\n- [Star History](#star-history)\n- [License](#license)\n\n## Why Hope Agent\n\nWe want an AI assistant that just **opens and works**: download an installer, install it, no runtimes or CLI to learn, no cryptic config to decipher, no service quietly crashing at 3am with no one to fix it, **and picks up wherever you go**. Hope Agent isn't only a desktop app — it also runs as an HTTP/WS service you can park on a NAS, home server, or cloud VM and leave running 24/7, while it hooks into IM channels and talks to IDEs over ACP — but we believe the easiest entry point is still the desktop, so that's where we put the most effort: **a first-class desktop GUI deeply integrated with the OS**, polished together with performance, stability, and the small interaction details. The goal is plain: reduce the cost of using and maintaining an AI assistant, make simple workflows feel effortless, and keep long-running setups dependable. And we want it to grow with you over the long run — one conversation that follows you across devices, chats, and platforms, with memory and skills quietly accruing along the way.\n\n\u003e Hope Agent was influenced in its early days by [openclaw](https://github.com/openclaw/openclaw) — credit to them for their pioneering work on local AI assistants. We took a different implementation path.\n\n## Highlights\n\n### 🎯 Everyday use\n\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd width=\"220\"\u003e\u003cb\u003e🖥️ Native desktop GUI\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eNative macOS / Linux / Windows app, ready to run out of the installer. Ships in 12 UI languages (Simplified/Traditional Chinese, English, Japanese, Korean, Spanish, Portuguese, Russian, Arabic, Turkish, Vietnamese, Malay) with a polished dark theme and carefully tuned typography.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🧙 Zero-config providers\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e39 built-in provider templates covering 206 preset models. Anthropic, OpenAI, Gemini, Codex, OpenRouter, DeepSeek, Kimi, Qwen, Doubao, GLM, MiniMax, xAI, Mistral, Cerebras, DeepInfra, Tencent Hunyuan, Ollama — all in. Each provider supports multi-key rotation, so rate limits and quota exhaustion fail over seamlessly to the next key.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🦙 One-click local models\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e\u003cb\u003eNo account, no API key, no terminal\u003c/b\u003e — Settings → Model picks a Qwen3.6 / Gemma 4 size that fits your hardware, then handles \u003ca href=\"https://ollama.com\"\u003eOllama\u003c/a\u003e install, model pull, provider registration, and active-model switch in one click. Same flow covers local embedding models too.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e💬 One app, every chat\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e12 IM channels: Telegram, Discord, Slack, Feishu, Google Chat, LINE, QQ Bot, Signal, iMessage, IRC, WeChat, WhatsApp. Inbound images / voice / files become multimodal context automatically; tool approvals are one tap in the chat window; every group / account can bind a distinct Agent with its own policies.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🤝 Hand off across devices, never miss a beat\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eThe same conversation hands off seamlessly between your desktop, browser, and IM — leave a thread half-finished on your laptop, pick it up on Telegram on the metro, come home and the desktop already has the IM portion folded in. The same memory, tool state, Plan, and working directory follow along — no need to re-explain context. \u003ccode\u003e/handover\u003c/code\u003e pushes the current desktop session to a specific IM chat; \u003ccode\u003e/session \u0026lt;id\u0026gt;\u003c/code\u003e takes over from inside IM. The desktop conversation also \u003cb\u003elive-mirrors into IM\u003c/b\u003e, typing into Telegram / Feishu / Slack as the model writes.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🌐 Standalone service · browser is the client\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e\u003cb\u003eNot just a desktop app\u003c/b\u003e — Hope Agent can run fully headless as a service. One command \u003ccode\u003ehope-agent server start\u003c/code\u003e launches an HTTP/WS daemon; \u003ccode\u003eserver install\u003c/code\u003e registers it as a launchd / systemd auto-start unit so it lives 24/7 on your NAS, cloud VM, or spare laptop. \u003cb\u003eThe server ships an embedded Web GUI\u003c/b\u003e (the React frontend is baked into the binary via \u003ccode\u003erust-embed\u003c/code\u003e) — \u003cb\u003epoint any browser on your phone, tablet, or another computer at \u003ccode\u003ehttp://\u0026lt;server\u0026gt;:port\u003c/code\u003e and you get the full React UI\u003c/b\u003e, no client install, no separate frontend deployment. Bearer token auth and three-tier SSRF policies keep public exposure controlled. Sessions, memories, cron jobs, and IM channels all run server-side — the client is just a window.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🔁 Three run modes, one core\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eDesktop GUI (default), HTTP/WS daemon with embedded Web GUI (browser-direct), and ACP stdio (as an agent backend for any ACP-capable IDE). All three share a pure-Rust \u003ccode\u003eha-core\u003c/code\u003e library with zero Tauri dependencies — the same code is a desktop app, a server, and an IDE backend.\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n### 🧠 Memory \u0026 learning\n\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd width=\"220\"\u003e\u003cb\u003e🧠 Persistent memory across sessions\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eSQLite + FTS5 + vector search, three-in-one. Memories are scoped by Global / Project / Agent; system prompt injection follows a joint budget so no one layer crowds out another.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🕶 Incognito chat\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eA per-session switch that can apply from the very first message. When enabled, the current chat gets no passive memory or cross-session awareness injection and does not auto-collect memory; memory tools are only used when you explicitly ask it to remember or recall something.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e💤 Offline \"dreaming\"\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eWhen idle, Hope Agent automatically reviews \"what was worth remembering over the past couple of days,\" pins the selections, and writes them into a markdown diary viewable under Settings → Dream Diary. Every day's work gets quietly consolidated for next time.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🔍 Active recall + reflective profile\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eBefore each turn starts, the most relevant memories for your input are pulled into the prompt (Active Memory). A separate reflective pass distills your communication style, work habits, and long-term preferences into a dedicated \"User Profile\" section — it gets better at knowing you over time.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🛠 Skills that grow\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eAfter complex tasks, Hope Agent auto-drafts new skills for your review. Approve a draft in settings and it's reusable from then on. Skills support conditional activation (e.g. only load when editing Python files), forked sub-agent execution, and tool allowlists; compatible with the \u003ca href=\"https://agentskills.io\"\u003eagentskills.io\u003c/a\u003e open standard.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e👁 Cross-session awareness\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eIt knows what your other chats are doing. Before each turn, Hope Agent pulls in the recent goals, actions, and friction points of your other active sessions — so when context crosses over, the right information is available without derailing the main conversation. Defaults to a zero-LLM-cost structured mode; an optional LLM digest mode is available.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e💾 Long conversations don't lose the plot\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eFive-tier progressive context compaction. No matter how long the chat, earlier messages aren't hard-truncated. Tool calls stay paired forever; when messages are summarized, recently edited file contents are auto-restored from disk so you don't have to paste them again. Combined with prompt caching, long-session API costs stay well below naive usage.\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n### 🛠 Workflow \u0026 tools\n\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd width=\"220\"\u003e\u003cb\u003e📋 Plan Mode\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eFor complex tasks, Hope Agent first drafts an editable, resumable plan managed by a five-state machine, with plan files physically isolated per agent / session so cross-session bleed can't happen. Plans persist across sessions — \"continue the previous plan\" is enough to pick up. The sidebar \u003cb\u003ePlans history viewer\u003c/b\u003e offers cross-session, read-only browsing of every plan (including \u003ccode\u003e/plan exit\u003c/code\u003e archives), with Agent / state filtering, version switching, and one-click jumps to the owning session; the detail pane injects an \u003ccode\u003e@plan:\u0026lt;short_id\u0026gt;:v\u0026lt;version\u0026gt;\u003c/code\u003e reference straight into the current chat. During execution it strictly respects a tool allowlist so the model can't wander.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e📁 Project containers\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eGroup related sessions under a single project that inherits project-level memory / instructions / shared files. Uploaded files get automatic text extraction and three-layer injection (dir listing / small-file auto-inline / large-file on-demand read) — no manual @ file, no context blowup.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🖱️ Computer control\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eCurrently macOS only. The Agent can use granted Accessibility and Screen Recording permissions to observe the desktop, inspect AX elements and windows, then open / switch apps, click, type, scroll, drag, use menus and dialogs, and move / resize / close windows. The Mac Control side panel mirrors desktop state in real time; every side-effecting action goes through the unified tool approval flow.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e👥 Agent teams\u003c/b\u003e\u003c/td\u003e\u003ctd\u003ePre-configure team templates in settings (member roles, bound agents, default task templates). One sentence tells the model to spin up a specialist team. Members message each other and coordinate; when done, the transcript is summarized back to the main thread.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🗓 Natural-language cron\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e\"Write me a daily summary every 8 AM.\" \"Review last week's todos every Monday.\" \"Scan my inbox hourly on workdays.\" Scheduled in plain language, delivered to any IM channel. Runs reliably under both desktop GUI and the daemon.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e📊 Dashboard + Recap\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eBuilt-in analytics: cost, token usage, activity heatmap, and a four-dimensional health score, plus a new \u003cb\u003ePlans tab\u003c/b\u003e (state distribution, completion rate, breakdowns by Agent / Project, 30-day creation trend, average execution time). \u003ccode\u003e/recap\u003c/code\u003e runs a deep retrospective over the last N days and produces an 11-section AI report (Agent tool optimization, memory \u0026amp; skill recommendations, cost optimization, etc.) that exports as standalone HTML.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🔌 MCP client (OAuth 2.1)\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eBuilt-in Model Context Protocol client with all four transports: stdio / Streamable HTTP / SSE / WebSocket. Full OAuth 2.1 + PKCE flow (automatic discovery, RFC 7591 dynamic client registration, loopback callback) persists credentials at 0600 on disk; standards-compliant OAuth servers like Notion / Linear work with a single click. All outbound URLs pass through the SSRF policy. One-click import from \u003ccode\u003eclaude_desktop_config.json\u003c/code\u003e in Settings; tools surface as \u003ccode\u003emcp__\u0026lt;server\u0026gt;__\u0026lt;tool\u0026gt;\u003c/code\u003e in the main conversation, with extra \u003ccode\u003emcp_resource\u003c/code\u003e / \u003ccode\u003emcp_prompt\u003c/code\u003e tools for passive data. Long-running tools auto-background.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🪝 Hooks automation\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eHook custom handlers onto 28 lifecycle events — sessions, tool calls, context compaction, permission decisions, and more — field-level compatible with the Claude Code hooks protocol, so community scripts work as-is. Five handler types (\u003ccode\u003ecommand\u003c/code\u003e / \u003ccode\u003ehttp\u003c/code\u003e / \u003ccode\u003emcp_tool\u003c/code\u003e / \u003ccode\u003eprompt\u003c/code\u003e / \u003ccode\u003eagent\u003c/code\u003e); config layers across user / managed / project / local scopes (UNIONed), and project-scope hooks (\u003ccode\u003e.hope-agent/hooks.json\u003c/code\u003e) ship with your repo for the whole team. Configure in a visual settings panel; changes hot-reload instantly.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🔧 Toolbox\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eComputer control (currently macOS only), controllable browser (8 high-level actions with a \u003cb\u003elive mirror panel\u003c/b\u003e on the chat sidebar — Chrome stays visible as the agent drives it; direct CDP via chromiumoxide, zero runtime dependencies), Canvas, AI image generation (7 providers), web search (8 providers with failover), bash (optional Docker sandbox), file read/grep/find, URL preview, crash journal, self-diagnosis.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e📑 Deep Feishu / Lark workspace integration\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e40 \u003ccode\u003efeishu_*\u003c/code\u003e tools spanning docx (create / read / edit), bitable (CRUD + views + dashboards), drive (upload / download ≤20MB, local paths gated by protected-path approval), wiki (link resolution), approval (create / query / cancel), calendar (create event / invite / update / delete), contact (user / department lookup), and hire (jobs / talents / applications). Reuses the existing Feishu IM channel credentials; ships with the \u003ccode\u003eskills/feishu\u003c/code\u003e skill that teaches typical workflows like OKR weekly reports, meeting scheduling, approval withdrawal.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e⚡ Background long tasks\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eLong-running shell commands, web searches, or image generations can be \"sent to the background\" — an immediate \u003ccode\u003ejob_id\u003c/code\u003e returns so the conversation keeps flowing. The result is auto-injected back into the main thread when it finishes; the model can also poll with \u003ccode\u003ejob_status\u003c/code\u003e on demand. No task is ever long enough to freeze your chat window.\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n### 🛡 Security \u0026 local-first\n\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd width=\"220\"\u003e\u003cb\u003e🔒 Tool approval + Docker sandbox\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eSensitive tool calls are gated by an approval flow (with per-category auto deny / proceed timeouts and per-channel auto-approve). High-risk bash / file writes can be routed into an isolated Docker sandbox. Safe to give the Agent high privileges.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🏠 Local-first · zero third-party hops\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eAll data lives under \u003ccode\u003e~/.hope-agent/\u003c/code\u003e: config, sessions, memories, attachments, skills, logs — all local SQLite / files. API keys hit model providers directly. In daemon mode, Bearer token auth plus three-tier SSRF policies keep remote access controllable.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e🛟 Automatic config snapshots · one-click rollback\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eEvery config write auto-snapshots to \u003ccode\u003ebackups/autosave/\u003c/code\u003e, keeping the last 50. Even if the model's settings tool garbles your preferences, you can restore to any previous state.\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cb\u003e♻️ Crash self-healing · 3-layer keepalive\u003c/b\u003e\u003c/td\u003e\u003ctd\u003eA parent–child Guardian process supervises the app and auto-restarts it with exponential backoff (1s → 3s → 9s → 15s → 30s) on unexpected exit; after 5 consecutive crashes it snapshots the config, runs an LLM self-diagnosis and attempts automatic remediation — crash history is browsable under \u003ci\u003eSettings → Crash History\u003c/i\u003e. Once \u003ccode\u003eserver install\u003c/code\u003e registers the daemon, launchd \u003ccode\u003eKeepAlive\u003c/code\u003e / systemd \u003ccode\u003eRestart=on-failure\u003c/code\u003e add an OS-level second layer — even if the Guardian itself is \u003ccode\u003ekill -9\u003c/code\u003e'd, the OS brings it back. Cron, IM channels and MCP connections each run their own watchdogs with auto-reconnect.\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e For the full list of built-in features, see [CHANGELOG.md](CHANGELOG.md).\n\n## Quick Start\n\n### Install Locally\n\n\u003e 📦 Full installer list across platforms: [Releases](https://github.com/shiwenwen/hope-agent/releases)\n\n#### macOS\n\n##### Homebrew (recommended)\n\n```bash\nbrew tap shiwenwen/hope-agent\nbrew install --cask hope-agent\n```\n\n\u003e Already have `Hope Agent.app` installed manually? Append `--adopt` to let the cask take over your existing same-version app without re-downloading, or `--force` to overwrite.\n\n##### Manual install (DMG)\n\nDownload `Hope.Agent_*.dmg` from [Releases](https://github.com/shiwenwen/hope-agent/releases) and drag into Applications.\n\n\u003e If macOS reports \"damaged\" or \"cannot verify the developer\" on first launch, run in Terminal:\n\u003e\n\u003e ```bash\n\u003e sudo xattr -cr /Applications/Hope\\ Agent.app\n\u003e sudo codesign --force --deep --sign - /Applications/Hope\\ Agent.app\n\u003e ```\n\nNative builds for both Apple Silicon (arm64) and Intel (x64); Homebrew and manual download both pick the correct DMG for your hardware automatically.\n\n##### Launch modes\n\n- **Desktop GUI**: Launchpad / Applications folder (click the Hope Agent icon), or `open -a \"Hope Agent\"` / `hope-agent` from a terminal\n- **Headless server (HTTP/WS daemon)**: `hope-agent server start`\n- **ACP (IDE integration)**: `hope-agent acp`\n\n#### Windows\n\n##### Scoop (recommended)\n\n```powershell\nscoop bucket add hope-agent https://github.com/shiwenwen/scoop-hope-agent\nscoop install hope-agent\n```\n\n##### Manual install (installer)\n\nDownload `Hope.Agent_*-setup.exe` from [Releases](https://github.com/shiwenwen/hope-agent/releases) and double-click. **Windows is not yet fully tested** — please file issues if anything breaks.\n\n\u003e If Windows reports \"MSVCP140_1.dll was not found\" or a similar missing `VCRUNTIME140.dll` / `MSVCP140.dll` error on launch, install the [Microsoft Visual C++ 2015–2022 Redistributable (x64)](https://aka.ms/vs/17/release/vc_redist.x64.exe) and relaunch.\n\nx64 only.\n\n##### Launch modes\n\n- **Desktop GUI**: click \"Hope Agent\" in the Start menu, or `hope-agent` from PowerShell\n- **Headless server (HTTP/WS daemon)**: `hope-agent server start` (PowerShell / cmd)\n- **ACP (IDE integration)**: `hope-agent acp`\n\n#### Linux\n\n##### Arch Linux / Manjaro (AUR)\n\n```bash\nyay -S hope-agent-bin   # or paru / any AUR helper\n```\n\nPre-built binary package (repackaged from the GitHub Release `.deb`) — no source compilation.\n\n##### Debian / Ubuntu (apt)\n\n```bash\ncurl -fsSL https://shiwenwen.github.io/hope-agent-linux-repo/pubkey.gpg | \\\n  sudo gpg --dearmor -o /usr/share/keyrings/hope-agent.gpg\necho \"deb [signed-by=/usr/share/keyrings/hope-agent.gpg] https://shiwenwen.github.io/hope-agent-linux-repo/apt stable main\" | \\\n  sudo tee /etc/apt/sources.list.d/hope-agent.list\nsudo apt update\nsudo apt install hope-agent\n```\n\n##### Fedora / RHEL / CentOS (dnf / yum)\n\n```bash\nsudo curl -fsSL https://shiwenwen.github.io/hope-agent-linux-repo/rpm/hope-agent.repo \\\n  -o /etc/yum.repos.d/hope-agent.repo\nsudo dnf install hope-agent     # or `sudo yum install hope-agent`\n```\n\n\u003e The older `sudo dnf config-manager --add-repo …` form has been removed in dnf5 (Fedora 41+); the `curl` variant above works on dnf4 / dnf5 / yum / zypper alike.\n\nopenSUSE users:\n\n```bash\nsudo zypper addrepo https://shiwenwen.github.io/hope-agent-linux-repo/rpm/hope-agent.repo\nsudo zypper install hope-agent\n```\n\n##### Manual install (AppImage / deb / rpm)\n\nFrom [Releases](https://github.com/shiwenwen/hope-agent/releases) (filenames include the arch suffix — pick `_amd64` / `_arm64` for deb/AppImage or `.x86_64` / `.aarch64` for rpm):\n\n- AppImage: `Hope.Agent_*.AppImage` — `chmod +x` and run\n- Debian / Ubuntu: `Hope.Agent_*.deb` — `sudo dpkg -i Hope.Agent_*.deb`\n- Fedora / RHEL: `Hope.Agent_*.rpm` — `sudo rpm -i Hope.Agent_*.rpm`\n\nBoth amd64 (x86_64) and arm64 (aarch64) native builds are published, covering desktops, Raspberry Pi 4/5, Apple Silicon Macs running Asahi Linux, and Graviton / Ampere cloud VMs. apt and dnf automatically pick the right arch via `dpkg --print-architecture` / `$basearch`.\n\n##### Launch modes\n\n- **Desktop GUI**: click \"Hope Agent\" in your app menu, or `hope-agent` from a terminal\n- **Headless server (HTTP/WS daemon)**: `hope-agent server start`\n- **ACP (IDE integration)**: `hope-agent acp`\n\n#### First launch \u0026 auto-update\n\n1. First launch wizard: **pick a provider template → paste API key / sign in with Codex OAuth → chat.**\n2. Desktop builds ship with the GitHub Releases auto-updater. Go to **Settings → About** in-app to check for and install updates, or just tell the model \"upgrade\" / \"check for updates\" in chat.\n3. Versions installed via Homebrew / AUR / Scoop also receive updates through the built-in updater; the package manager's recorded version stays pinned to the initial install version and does not affect functionality.\n\n### Self-hosting (Docker)\n\nFor running Hope Agent on a home NAS / VPS / homelab and accessing the Web GUI from a browser:\n\n```bash\ndocker run -d \\\n  --name hope-agent \\\n  -p 127.0.0.1:8420:8420 \\\n  -v hope-data:/data \\\n  ghcr.io/shiwenwen/hope-agent:latest\n```\n\nOnce the container is running, open \u003chttp://127.0.0.1:8420\u003e in a browser and follow the onboarding wizard to configure provider API keys. The image covers `linux/amd64` + `linux/arm64` (including Apple Silicon and Raspberry Pi) and is auto-built on every release tag.\n\nFor docker-compose, the optional Ollama sidecar for local LLMs, LAN exposure, reverse proxy + TLS, and upgrade flow, see [`docs/deployment/docker.en.md`](docs/deployment/docker.en.md).\n\n### For developers\n\n```bash\ngit clone https://github.com/shiwenwen/hope-agent.git\ncd hope-agent\npnpm install\npnpm tauri dev         # desktop dev (frontend + Rust hot reload)\n\n# Other useful commands\npnpm typecheck         # frontend typecheck (tsc -b)\npnpm lint              # lint\npnpm tauri build       # production build\n```\n\nFor local Web GUI development with live reload, run `pnpm tauri dev` and open `http://localhost:1420` in your browser. That is the Vite dev server, sharing the same frontend HMR as the Tauri window. `http://localhost:8420` is the embedded HTTP/WS server's static Web GUI entry, served from `dist/` / the embedded bundle, so it behaves like the packaged browser entry and does not HMR with source changes. If your local server has an API key enabled, the `1420` page may get 401s from `8420`; for development, temporarily clear the Server API Key in Settings and restart.\n\n## Run Modes\n\n| Mode             | How to start                                                                      | When to use                                                                       |\n| ---------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |\n| Desktop GUI      | Double-click the app / `pnpm tauri dev`                                        | The most complete entry point: full GUI plus an embedded HTTP/WS server, so the desktop can serve remote clients while you use it |\n| Server + Web GUI (HTTP/WS) | `server start` subcommand; `server install` registers a launchd / systemd service | Headless always-on daemon for IM channels and cron jobs; **the React frontend is `rust-embed`-baked into the server binary, so opening `http://\u003cserver\u003e:port` in any browser gives you the full Web GUI** — phone, tablet, any computer can connect directly without installing a client |\n| ACP (stdio)      | `acp` subcommand                                                                  | IDE integration — any ACP-capable editor can call Hope Agent as its agent backend |\n\nAll three modes share the same `ha-core` core. Config, sessions, and memories live under `~/.hope-agent/`.\n\n## Ecosystem\n\n\u003ctable\u003e\n\u003ctr\u003e\n  \u003ctd width=\"140\"\u003e\u003cb\u003e📦 Model providers\u003c/b\u003e\u003c/td\u003e\n  \u003ctd\u003e\n    \u003cb\u003e39 templates · 206 preset models\u003c/b\u003e\u003cbr/\u003e\n    \u003cb\u003eInternational\u003c/b\u003e · Anthropic · OpenAI · Codex · Google Gemini · OpenRouter · Azure OpenAI · Groq · Together AI · Fireworks · Perplexity · xAI Grok · Mistral · Cohere\u003cbr/\u003e\n    \u003cb\u003eChina\u003c/b\u003e · DeepSeek · Moonshot (Kimi) · Qwen · Doubao (Volcengine) · Z.AI (GLM) · MiniMax · Xiaomi MiMo\u003cbr/\u003e\n    \u003cb\u003eLocal\u003c/b\u003e · Ollama · any OpenAI-compatible endpoint\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cb\u003e💬 IM channels\u003c/b\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cb\u003e12\u003c/b\u003e · Telegram · Discord · Slack · Feishu · Google Chat · LINE · QQ Bot · Signal · iMessage · IRC · WeChat · WhatsApp\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cb\u003e🌐 UI languages\u003c/b\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cb\u003e12\u003c/b\u003e · Simplified Chinese · Traditional Chinese · English · Japanese · Korean · Spanish · Portuguese · Russian · Arabic · Turkish · Vietnamese · Malay\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Project Structure\n\nCargo workspace, three crates; all business logic lives in `ha-core`:\n\n```\ncrates/\n  ha-core/       Rust core library (zero Tauri deps) — where the logic lives\n  ha-server/     axum HTTP/WS daemon (thin shell)\nsrc-tauri/       Tauri desktop shell (thin shell)\nsrc/             React 19 + TypeScript frontend\nskills/          Bundled skills (ship with the app)\n```\n\nFor the full module map, architecture conventions, and coding guidelines, see [AGENTS.md](AGENTS.md).\n\n## Documentation\n\nSee [docs/](docs/).\n\n## Contributing\n\nThe main branch is under active development — issues and PRs are welcome. Please skim the **Architecture** and **Coding Conventions** sections of [AGENTS.md](AGENTS.md) before contributing.\n\nCommon commands:\n\n```bash\npnpm tauri dev                    # desktop dev\ncargo check --workspace              # Rust dep / type check\ncargo test -p ha-core -p ha-server   # core tests\nnode scripts/sync-i18n.mjs --check   # i18n completeness check\n```\n\n## Community\n\n- 🐛 [Issues](https://github.com/shiwenwen/hope-agent/issues) — bug reports, feature requests\n- 💡 [Discussions](https://github.com/shiwenwen/hope-agent/discussions) — usage, ideas, Q\u0026A\n- ⭐ If Hope Agent helps you, consider giving it a star on GitHub\n- 📮 Roadmap, a dedicated docs site, and more community channels are on the way\n\n## Acknowledgements\n\n- [openclaw](https://github.com/openclaw/openclaw) — inspiration in the local AI assistant space\n- [Ollama](https://ollama.com/) — the one-click local LLM experience is built on top of Ollama's local runtime and its OpenAI-compatible endpoint; Hope Agent only wraps the GUI layer, while Qwen / Gemma and other models are distributed through the Ollama model library\n- [ClawHub](https://www.clawhub.com/) / [SkillHub](https://skillhub.cn/) — public skill discovery sources for Hope Agent\n- [Hermes Agent](https://github.com/NousResearch/hermes) (originally adapted from [obra/superpowers](https://github.com/obra/superpowers)) — several bundled coding-methodology skills are vendored from here (MIT); see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)\n- [Tauri](https://tauri.app/), [axum](https://github.com/tokio-rs/axum), [React](https://react.dev/), [shadcn/ui](https://ui.shadcn.com/), [Streamdown](https://github.com/streamdown/streamdown), [Radix UI](https://www.radix-ui.com/), and the rest of the open source stack Hope Agent stands on\n- Everyone who has filed issues, tested builds, and given feedback along the way\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/#shiwenwen/hope-agent\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=shiwenwen/hope-agent\u0026type=Date\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=shiwenwen/hope-agent\u0026type=Date\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=shiwenwen/hope-agent\u0026type=Date\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiwenwen%2Fhope-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshiwenwen%2Fhope-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiwenwen%2Fhope-agent/lists"}