https://github.com/pardnchiu/agenvoy
Agent OS | Multi-provider concurrent dispatch | Self-improving error memory | Pluggable tool extensions | Sandbox execution
https://github.com/pardnchiu/agenvoy
agent-os agentic agentic-ai ai ai-agent go golang harness
Last synced: about 1 month ago
JSON representation
Agent OS | Multi-provider concurrent dispatch | Self-improving error memory | Pluggable tool extensions | Sandbox execution
- Host: GitHub
- URL: https://github.com/pardnchiu/agenvoy
- Owner: pardnchiu
- License: apache-2.0
- Created: 2026-02-05T02:16:07.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2026-05-20T18:01:46.000Z (about 1 month ago)
- Last Synced: 2026-05-20T18:38:50.273Z (about 1 month ago)
- Topics: agent-os, agentic, agentic-ai, ai, ai-agent, go, golang, harness
- Language: Go
- Homepage: https://agenvoy.com/
- Size: 9.12 MB
- Stars: 115
- Watchers: 1
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
> [!NOTE]
> This README was generated by [SKILL](https://github.com/pardnchiu/skill-readme-generate), get the ZH version from [here](./doc/README.zh.md).
> Tests are generated by [SKILL](https://github.com/pardnchiu/skill-coverage-generate).
***
One command. Multiple models. Each playing to its strength.
Go-native runtime · Dispatcher routes each step to the best-fit model · Subagents collaborate in one process
***
## Quick install
```bash
curl -fsSL https://cloud.agenvoy.com/install.sh | bash
```
One line. Single binary at `/usr/local/bin/agen`. macOS / Linux.
Running the daemon on a MacBook? Run `sudo pmset -c sleep 0` to keep the system awake while plugged in — prevents the daemon from being suspended on AC power.
## What makes it different
- **Dispatcher-based intelligent routing** — a dispatcher model routes every task to the best-fit worker (Claude for coding, Gemini for video, GPT for research), instead of forcing one model to do everything.
- **Agent that builds and persists its own tools** — when a tool is missing the agent writes a script or API into `extensions/` and loads it as a native tool on the next run; MCP servers are supported alongside.
- **One runtime across every channel** — Telegram, Discord, TUI, Web, and cron all attach to the same daemon; sessions, memory, and the tool set are shared, not rebuilt per surface.
Agenvoy vs Mainstream Products: Full Detailed Comparison
### 1. Overview
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| **Language** | Go | TypeScript | TypeScript | TypeScript | TypeScript | Python |
| **License** | Apache 2.0 | Proprietary | Apache 2.0 | Apache 2.0 | MIT | MIT |
| **Author** | Individual (pardnchiu) | Anthropic | OpenAI | Google | Community | NousResearch |
| **Primary use** | Multi-platform AI Agent framework | Terminal coding assistant | Terminal coding assistant | Terminal coding assistant | Multi-platform AI Agent | Multi-platform AI Agent |
| **Architecture** | Daemon + TUI + Chat | CLI session | CLI session | CLI session | Daemon + TUI + Chat | Daemon + TUI + Chat |
---
### 2. AI Provider Support
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| Claude | ✅ | ✅ only | ❌ | ❌ | ✅ | ✅ |
| OpenAI / GPT | ✅ | ❌ | ✅ only | ❌ | ✅ | ✅ |
| Gemini | ✅ | ❌ | ❌ | ✅ only | ✅ | ✅ |
| Codex (OpenAI OAuth) | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ |
| GitHub Copilot | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Nvidia NIM | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| OpenAI-compat | ✅ | ❌ | ❌ | ❌ | ✅ Ollama/LM Studio | ✅ OpenRouter 200+ |
| DeepSeek / Mistral / xAI | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Dispatcher routing | ✅ dedicated dispatcher model | ❌ | ❌ | ❌ | ❌ | ❌ |
---
### 3. Runtime & Frontend
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| TUI | ✅ bubbletea | ✅ ink | ✅ | ✅ | ✅ `openclaw tui` | ✅ React Ink |
| CLI | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| HTTP API / Web UI | ✅ gin | ❌ | ❌ | ❌ | ❌ | ✅ Web Dashboard |
| Daemon mode | ✅ native `--daemon` | ❌ | ❌ | ❌ | ✅ systemd/launchd | ✅ gateway daemon |
| Session Canvas (HTML+SSE) | ✅ `update_page` | ❌ | ❌ | ❌ | ❌ | ❌ |
| Named sessions | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ session picker |
---
### 4. Chat Platform Integration
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| Telegram | ✅ native daemon | ⚠️ Channels MCP (requires active session) | ❌ | ❌ | ✅ native daemon | ✅ native daemon |
| Discord | ✅ native daemon | ⚠️ Channels MCP (requires active session) | ❌ | ❌ | ✅ native daemon | ✅ native daemon |
| iMessage | ❌ | ⚠️ Channels MCP (macOS only) | ❌ | ❌ | ✅ BlueBubbles | ✅ BlueBubbles |
| WhatsApp / Slack / LINE | ❌ | ❌ | ❌ | ❌ | ✅ 50+ platforms | ✅ 20+ platforms |
| Always-on receiving (no session needed) | ✅ daemon | ❌ | ❌ | ❌ | ✅ | ✅ |
| Cross-session send (any session → chat) | ✅ `send_to_telegram_chat` / `send_to_discord_channel` | ❌ | ❌ | ❌ | ❌ | ❌ |
| OTP verification | ✅ 6-digit crypto/rand | ❌ | ❌ | ❌ | ❌ | ❌ |
| Native platform UI (buttons / menus / modals) | ✅ inline keyboard / select menu / modal | ❌ | ❌ | ❌ | ⚠️ text-based options | ⚠️ text-based options |
> **Platform layer**: Agenvoy's Telegram and Discord integrations are both built on [pardnchiu/go-bot](https://github.com/pardnchiu/go-bot), independently maintained and open source. go-bot encapsulates the bot protocol details for both platforms — Agenvoy only implements business logic, while the platform API layer is entirely handled by go-bot.
> **Key difference**: Claude Code Channels requires an active session. OpenClaw and Hermes have daemons but their in-chat confirmations are text-based. Agenvoy uses native platform UI — Telegram inline keyboards and Discord select menus / modals. Additionally, Agenvoy's cross-session send tools allow any session type (CLI, TUI, HTTP, scheduled script) to push messages to Telegram/Discord — no competitor exposes this capability.
---
### 5. Telegram Feature Comparison
| Feature | **Agenvoy** | **OpenClaw** | **Hermes Agent** | **Claude Code Channels** |
|---------|-------------|-------------|------------------|--------------------------|
| Send text reply | ✅ | ✅ | ✅ | ✅ |
| Send voice (TTS) | ✅ Gemini TTS → OGG | ✅ ElevenLabs/Hume | ✅ Edge TTS/ElevenLabs | ❌ |
| Send file attachments | ✅ `[SEND_FILE:]` | ✅ | ✅ | ❌ |
| Receive user attachments | ✅ photo/doc/voice/video | ✅ | ✅ | ❌ |
| Voice-to-text (STT) | ✅ Gemini, 14 formats | ✅ Whisper/Gemini | ✅ faster-whisper (local) | ❌ |
| Tool confirm (interactive) | ✅ native inline keyboard | ⚠️ text approval prompt | ⚠️ text options | ❌ |
| ask_user (picker) | ✅ native button/modal | ⚠️ `/models` picker | ⚠️ text options, up to 4 | ❌ |
| Format reference (lazy-load tool) | ✅ `telegram_format` | ❌ | ❌ | ❌ |
| Scheduler output push | ✅ | ✅ | ✅ | ❌ |
| Cross-session push (from any session) | ✅ `send_to_telegram_chat` | ❌ | ❌ | ❌ |
| Offline receiving (daemon) | ✅ | ✅ | ✅ | ❌ |
---
### 6. Discord Feature Comparison
| Feature | **Agenvoy** | **OpenClaw** | **Hermes Agent** | **Claude Code Channels** |
|---------|-------------|-------------|------------------|--------------------------|
| Send text reply | ✅ | ✅ | ✅ | ✅ |
| Send voice (TTS) | ✅ Gemini TTS → OGG/OPUS | ✅ | ✅ | ❌ |
| Send file attachments | ✅ batch 10/message | ✅ | ✅ | ❌ |
| Receive user attachments | ✅ photo/doc/voice/video | ✅ | ✅ | ❌ |
| Tool confirm (interactive) | ✅ select menu button | ✅ `/model` picker | ⚠️ text options | ❌ |
| ask_user (modal) | ✅ select/multi-select/modal | ⚠️ limited | ⚠️ text options | ❌ |
| Format reference (lazy-load tool) | ✅ `discord_format` | ❌ | ❌ | ❌ |
| Guild mention guard | ✅ | ✅ | ✅ | ❌ |
| Discord Markdown aware | ✅ full spec as lazy-load tool | ⚠️ partial | ⚠️ partial | ❌ |
| Character limit aware | ✅ 1600 char hard limit in prompt | ❌ | ❌ | ❌ |
| Cross-session push (from any session) | ✅ `send_to_discord_channel` | ❌ | ❌ | ❌ |
---
### 7. Scheduler
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| Cron jobs | ✅ SKILL.md + cron | ✅ cloud-assisted cron/task | ❌ | ❌ | ✅ built-in | ✅ built-in |
| One-shot tasks | ✅ | ✅ cloud-assisted | ❌ | ❌ | ✅ `at` format | ✅ natural language |
| TUI CRUD | ✅ | ❌ | ❌ | ❌ | ✅ `openclaw cron` | ✅ `cronjob` tool |
| fsnotify hot-reload | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Push output to Telegram/Discord | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| AI tool management (add/list/remove) | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ `cronjob` tool |
| Local execution (no cloud required) | ✅ | ❌ cloud-dependent | ❌ | ❌ | ✅ | ✅ |
> **Scheduler layer**: Agenvoy's scheduler is built on [pardnchiu/go-scheduler](https://github.com/pardnchiu/go-scheduler), a self-maintained ecosystem package providing cron expression parsing, one-shot tasks, fsnotify hot-reload, and full output routing back to chat platforms.
---
### 8. Tool Ecosystem
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| MCP support | ✅ client | ✅ client | ❌ | ✅ client | ✅ client | ✅ client + server |
| Custom tools (script-tool-add) | ✅ AI-generated | ❌ | ❌ | ❌ | ❌ | ✅ auto-creates skill |
| API tool discovery (search-api → add) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Skill system | ✅ SKILL.md lazy-load | ✅ CLAUDE.md | ❌ | ❌ | ✅ SKILL.md 5400+ community | ✅ SKILL.md agentskills.io |
| Format reference as lazy-load tool | ✅ `telegram_format` / `discord_format` | ❌ | ❌ | ❌ | ❌ | ❌ |
| Image generation | ✅ DALL-E/Codex Image | ❌ | ❌ | ❌ | ❌ | ❌ |
| Media transcription STT | ✅ Gemini, 14 formats | ❌ | ❌ | ❌ | ✅ Whisper/Gemini | ✅ faster-whisper (local) |
| TTS voice output | ✅ Gemini TTS | ❌ | ❌ | ❌ | ✅ ElevenLabs/Hume/MS | ✅ Edge TTS/ElevenLabs/OpenAI |
| Computer use / browser | ✅ go-rod + Playwright MCP | ✅ beta | ❌ | ❌ | ✅ Chrome CDP | ✅ Playwright (Chromium/Firefox) |
> **Tool sandbox architecture**: Agenvoy's Python/JavaScript/API custom tool interfaces are built on the [pardnchiu/go-faas](https://github.com/pardnchiu/go-faas) (Function as a Service) concept. Each AI-generated tool runs as an isolated function unit with its own lifecycle and security boundary. This is the only FaaS-level sandbox design for tool extension among all compared products.
---
### 9. Memory System
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| Instruction file system | ✅ SKILL.md | ✅ CLAUDE.md | ❌ | ❌ | ✅ SKILL.md | ✅ SKILL.md |
| Conversation history search | ✅ ToriiDB vector search | ❌ | ❌ | ❌ | ✅ SQLite vector | ✅ SQLite FTS5 |
| Error memory | ✅ ToriiDB | ❌ | ❌ | ❌ | ❌ | ❌ |
| Action log | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Long-term persistent memory | ⚠️ ToriiDB foundation in place | ⚠️ CLAUDE.md manual | ❌ | ❌ | ✅ Wiki-style MEMORY.md | ✅ MEMORY.md + USER.md |
| Cross-session memory | ⚠️ session-isolated by default, extensible with external memory | ⚠️ session-isolated by default, extensible with external memory | ⚠️ session-isolated by default | ⚠️ session-isolated by default | ✅ built-in cross-session | ✅ built-in cross-session |
> **ToriiDB** is a self-developed embedded vector database ([pardnchiu/ToriiDB](https://github.com/pardnchiu/ToriiDB)) in the Agenvoy ecosystem. It requires no external service and runs in-process. Agenvoy uses ToriiDB as its memory infrastructure, currently powering semantic conversation history search and error memory, and serving as the foundation for future long-term cross-session memory expansion.
---
### 10. Dependencies & Deployment
| | **Agenvoy** | **Claude Code** | **Codex CLI** | **Gemini CLI** | **OpenClaw** | **Hermes Agent** |
|--|--|--|--|--|--|--|
| Direct external dependencies | **12** | 50+ | 40+ | 40+ | large (pnpm monorepo) | 30–40 core + 60+ optional |
| Self-maintained ecosystem packages | 5 (go-bot / go-pkg / go-scheduler / ToriiDB / go-faas) | 0 | 0 | 0 | 0 | 0 |
| Runtime | Go (static binary) | Node.js | Node.js | Node.js | Node.js | Python |
| Deployment | **single binary** | npm install | npm install | npm install | npm install | pip + docker/VPS |
---
### Where Agenvoy Stands
| Dimension | Detail |
|-----------|--------|
| **Clear advantages** | Single Go binary, 12 dependencies, self-maintained ecosystem (pardnchiu universe), dispatcher model routing, Session Canvas, native platform UI (real buttons/modals), OTP verification, cross-session send to Telegram/Discord from any session, API tool auto-discovery, image generation, format reference as lazy-load tool, local-only scheduler (no cloud required) |
| **On par with competitors** | Telegram/Discord daemon, TTS/STT, scheduler output push, Skill system, MCP, browser automation, inbound attachment handling |
| **Where competitors lead** | OpenClaw 50+ platforms, Hermes MCP server mode, Hermes local STT, OpenClaw/Hermes built-in cross-session memory, Claude Code Computer Use beta, Claude Code cloud cron/task |
| **Codex CLI** | Fewest features — CLI + TUI + OpenAI OAuth only, no daemon, no chat platforms, no scheduler |
CLI commands
> Run as `agen `. `make ` wrappers exist in the repo Makefile for development.
| Command | Description |
|---|---|
| `agen` | Attach interactive TUI; forks daemon (HTTP + Discord + Telegram + scheduler + summary cron) if not running. |
| `agen cli ` | One-shot agent run; every tool call asks for confirmation. |
| `agen run ` | One-shot agent run; auto-approves every tool call. |
| `agen stop` | Stop the running daemon (SIGTERM 5s grace → SIGKILL → clear `runtime.uid`). |
| `agen update` | Fetch latest release, rebuild, stop daemon — re-attach to load the new binary. |
| `agen model {add\|remove\|list\|dispatcher\|reasoning}` | Manage providers / worker models, pick dispatcher model, set reasoning level. |
| `agen mcp {list\|add\|remove}` | Manage MCP servers (stdio / HTTP) across global and per-session scope. |
| `agen session {new\|switch\|config} [name]` | Manage CLI sessions; bare `switch` / `config` opens an interactive picker. |
TUI slash commands
> Available inside `agen`'s TUI prompt. Type `/` to filter; popup commands transition cleanly back to the prompt.
| Command | Description |
|---|---|
| `/switch` | Switch active session via picker (current session pre-selected). |
| `/new [name]` | Create a new session; optional name pins it to the registry. Name is conflict-checked against existing sessions; abort on duplicate. |
| `/bot` | Edit the current session's bot via two sequential popups: name textfield (conflict-checked against other sessions; abort on conflict) → description textarea (`Ctrl+S` confirms, `Enter` newline, `Esc` cancels). |
| `/model [global\|session]` | Scope picker; `global` → `[add, remove]` (registry), `session` → pick a configured model. Inline arg skips the scope popup. |
| `/mcp [add\|remove]` | Action picker; `add` walks a chained popup form (name → transport → command/args/env or url/headers → scope → optional session pick), `remove` lists configured servers across global and session scopes. Restart the daemon to apply changes. Inline arg skips the action popup. |
| `/dispatcher` | Pick the dispatcher model from `cfg.Models` via popup. No inline arg. |
| `/reasoning [global\|session]` | Pick `low` / `medium` / `high` for the dispatcher (global) or the active session. Inline arg skips the scope popup. |
| `/discord [enable\|disable]` | Toggle Discord bot connection (token entry, verification, keychain write, daemon reload all happen in-TUI). Inline arg switches without the popup. |
| `/telegram [enable\|disable]` | Toggle Telegram bot connection (same in-TUI popup chain as `/discord`; first chat to message the bot must pass an in-chat verification code). Inline arg switches without the popup. |
| `/cron [add\|remove\|edit]` | Manage recurring schedules. `add` opens a multiline requirement textarea → dispatches `/scheduler-skill-creator ` (asks for missing when/what via `ask_user`). `remove` lists crons → confirm popup → `runtime.RemoveCron` + trashes the skill dir. `edit` lists crons → requirement textarea → agent picks `patch_cron` or rewrites the SKILL.md body. Inline arg skips the action popup. |
| `/task [add\|remove\|edit]` | Manage one-shot scheduled tasks (mirrors `/cron`; uses `add_task` / `patch_task` / `remove_task`). Picker shows ` `. |
| `/sched-` | Execute an existing scheduler skill body inline (manual trigger). Surfaced at the bottom of the `/` picker after regular skills; label rendered in warn-purple to mark it as an invocation. The dispatch wraps the body with an explicit "execute, do NOT activate scheduler-skill-creator" preamble. |
| `/mode [cli\|web]` | Switch between `cli` (TUI rendering) and `web` (browser page). Inline arg switches without the popup. |
| `/update` | Confirm popup → `agen stop && agen update` via `tea.ExecProcess` → quit TUI. |
| `/history` | Reload visible transcript — clear screen, reprint header, render the last 100 entries from the session's `action.log`. |
| `/log` | Open the raw `action.log` in `$PAGER` (fallback `less -Rf +G`, jumps to bottom). `\x1F` markers are expanded back to newlines for readability. |
| `/clear` | Clear the current window display only — like terminal `clear`; conversation memory is untouched. |
| `/exit`, `/quit` | Exit TUI (daemon keeps running; re-attach with `agen`). |
Built-in tools
> Tools auto-load on demand; stub names appear first, full schema activates on use. See [Tools wiki](https://github.com/pardnchiu/agenvoy/wiki/Tools) for parameters and routing.
| Tool | Description |
|---|---|
| **File** | |
| `read_file` | Read a text, PDF, DOCX, PPTX, CSV/TSV, or image file. |
| `write_file` | Write content to a file, overwriting if it exists. |
| `patch_file` | Replace an exact string match inside a file. |
| `list_files` | List directory entries; `recursive=true` walks subtree files. |
| `glob_files` | Find files matching a glob pattern within a directory. |
| `search_files` | Search file contents by RE2 regex within a directory. |
| **Web** | |
| `fetch_page` | Fetch a web page and return its content as Markdown. |
| `save_page_to_file` | Fetch a web page and save its content to a local file. |
| `search_web` | Search the web via DuckDuckGo Lite; returns top 10 results. |
| `fetch_google_rss` | Search Google News RSS and return article titles, summaries, links. |
| `fetch_yahoo_finance` | Query Yahoo Finance quotes and K-line (OHLCV). |
| `fetch_youtube_transcript` | Transcribe a YouTube video with timestamps. *(gemini needed)* |
| `transcribe_media` | Transcribe a local audio / video file (ogg, mp3, wav, m4a, flac, aac, mp4, mov, webm, mpeg, 3gp, …) up to 20 MiB. *(gemini needed)* |
| `send_http_request` | Send an HTTP request to a specified URL. |
| **Shell** | |
| `run_command` | Run a binary with argv; returns combined stdout/stderr. |
| **Render** | |
| `update_page` | Overwrite the rendered HTML page for the current session; tabs auto-reload. |
| `generate_image` | Generate an image via gpt-image-2 (size & quality picked by user). *(codex needed)* |
| **Channel** | |
| `list_telegram_chat` | List authorized Telegram chats (id + name). *(telegram needed)* |
| `send_to_telegram_chat` | Send an HTML-formatted message to an authorized Telegram chat by chat_id. *(telegram needed)* |
| `telegram_format` | Return the Telegram HTML formatting reference (allowed tags, escape rules, file/voice markers). *(telegram needed)* |
| `list_discord_channel` | List authorized Discord channels (id + name). *(discord needed)* |
| `send_to_discord_channel` | Send a markdown-formatted message to an authorized Discord channel by channel_id. *(discord needed)* |
| `discord_format` | Return the Discord markdown formatting reference (allowed markdown, special tokens, file/voice markers). *(discord needed)* |
| **Calc** | |
| `calculate` | Evaluate a mathematical expression and return the exact result. |
| **Discovery** | |
| `list_tools` | List all currently available built-in and dynamically loaded tools. |
| `search_tools` | Search available tools by keyword and inject matches into the request. |
| `activate_skill` | Fetch a skill's reference material by exact name. |
| **Interactive** | |
| `ask_user` | Ask the user one or more questions and return their answers. |
| `store_secret` | Prompt the user for a secret with masked input and persist to the system keychain. |
| **Memory** | |
| `search_conversation_history` | Search the session's past messages by keyword and semantic similarity. |
| `search_error_memory` | Semantically search past tool-error records; hits refresh 3-month TTL. |
| `read_error_memory` | Fetch a prior tool-error record by hash. |
| `remember_error` | Persist a tool-error record for future retrieval. |
| **Agent** | |
| `invoke_subagent` | Run a subtask in an internal subagent session and return its final text. |
| `invoke_external_agent` | Invoke one external CLI agent (codex / copilot / claude / gemini) for a second opinion. |
| `cross_review_with_external_agents` | Cross-review a completed result across all available external agents in parallel. |
| `review_result` | Review a result against the original input and return issues and improvements. |
| **Scheduler** | |
| `add_task` | Bind an existing scheduler skill to fire once at a specific time (`+5m` / `HH:MM` / `YYYY-MM-DD HH:MM` / RFC3339). |
| `add_cron` | Bind an existing scheduler skill to a recurring 5-field cron expression. |
| `patch_task` / `patch_cron` | Reschedule an existing task / cron by skill name (changes only the time, leaves the bound skill body untouched). |
| `remove_task` / `remove_cron` | Cancel a scheduled task / cron by skill name; the bound scheduler skill dir is moved to `.Trash/`. |
| **Skill Git** | |
| `skill_git_commit` / `skill_git_log` / `skill_git_rollback` | Commit, list, or roll back the `~/.config/agenvoy/skills` git history. |
Dynamic tool families (auto-registered, not listed above): `mcp____` from configured MCP servers, `api_` from `extensions/apis/*.json`, `script_` from `extensions/scripts//`.
## Wiki
| English | 中文 |
|---|---|
| [Getting Started](https://github.com/pardnchiu/agenvoy/wiki/Getting-Started) | [新手入門](https://github.com/pardnchiu/agenvoy/wiki/新手入門) |
| [Architecture](https://github.com/pardnchiu/agenvoy/wiki/Architecture) | [架構](https://github.com/pardnchiu/agenvoy/wiki/架構) |
| [Core Concepts](https://github.com/pardnchiu/agenvoy/wiki/Core-Concepts) | [核心概念](https://github.com/pardnchiu/agenvoy/wiki/核心概念) |
| [Providers](https://github.com/pardnchiu/agenvoy/wiki/Providers) | [Provider 設定](https://github.com/pardnchiu/agenvoy/wiki/Provider-設定) |
| [Tools](https://github.com/pardnchiu/agenvoy/wiki/Tools) | [工具系統](https://github.com/pardnchiu/agenvoy/wiki/工具系統) |
| [Memory System](https://github.com/pardnchiu/agenvoy/wiki/Memory-System) | [記憶系統](https://github.com/pardnchiu/agenvoy/wiki/記憶系統) |
| [Skill System](https://github.com/pardnchiu/agenvoy/wiki/Skill-System) | [Skill 系統](https://github.com/pardnchiu/agenvoy/wiki/Skill-系統) |
| [MCP Integration](https://github.com/pardnchiu/agenvoy/wiki/MCP-Integration) | [MCP 整合](https://github.com/pardnchiu/agenvoy/wiki/MCP-整合) |
| [Security and Sandbox](https://github.com/pardnchiu/agenvoy/wiki/Security-and-Sandbox) | [安全與沙箱](https://github.com/pardnchiu/agenvoy/wiki/安全與沙箱) |
| [CLI Reference](https://github.com/pardnchiu/agenvoy/wiki/CLI-Reference) | [命令列參考](https://github.com/pardnchiu/agenvoy/wiki/命令列參考) |
| [Configuration](https://github.com/pardnchiu/agenvoy/wiki/Configuration) | [設定檔](https://github.com/pardnchiu/agenvoy/wiki/設定檔) |
## License
This project is licensed under the [Apache License 2.0](LICENSE).
## Contributor
Just [open an issue](https://github.com/pardnchiu/agenvoy/issues/new) to share an idea.
## Star History
When the curve trends up — that's the signal we want to see. Hit ★ to push it along.
***
©️ 2026 [邱敬幃 Pardn Chiu](https://www.linkedin.com/in/pardnchiu)