Agenvoy
Health Pass
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 102 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
This is a Go-based agentic framework designed to build and run AI assistants. It learns from past errors to improve over time, automatically routes tasks to different AI providers, and allows users to extend its capabilities by dropping in custom scripts—all running within a native OS sandbox.
Security Assessment
Risk Rating: Medium.
Because this tool acts as an AI agent framework, its core functionality inherently involves executing external tools, processing diverse data, and making network requests to various Large Language Model (LLM) APIs (such as OpenAI, Claude, Gemini, and Copilot). The project relies on a native OS sandbox to isolate these actions, meaning the overall safety of your system depends heavily on how strictly you configure that sandbox environment. The automated code scan did not find any dangerous patterns, hardcoded secrets, or requests for excessive system permissions in the repository itself. However, developers should remain cautious when granting the agent access to external Python or JavaScript scripts, as these act as pluggable extensions.
Quality Assessment
The project demonstrates strong health and active maintenance. It is licensed under Apache-2.0, providing clear and permissive usage terms. Development is highly active, with the latest repository pushes occurring today. It has garnered 75 GitHub stars, indicating a fair level of early community interest and trust. Furthermore, the documentation is thorough and well-organized, featuring clear architecture guides and test coverage.
Verdict
Safe to use, provided you properly configure the sandbox environment and manage the permissions of any custom tool extensions you introduce.
Agentic runtime | Multi-provider concurrent dispatch | Self-improving error memory | Pluggable tool extensions | Sandbox execution
[!NOTE]
This README was generated by SKILL, get the ZH version from here.
Tests are generated by SKILL.
One command. Multiple models. Each playing to its strength.
Go-native dispatcher · Planner routes each step to the best-fit model · Subagents collaborate in one process
Quick install
curl -fsSL https://cloud.agenvoy.com/install.sh | bash
One line. Single binary at /usr/local/bin/agen. macOS / Linux.
CLI commands
Run as
agen <sub>.make <sub>wrappers exist in the repo Makefile for development.
| Command | Description |
|---|---|
agen |
Attach interactive TUI; forks daemon (HTTP + Discord + scheduler + summary cron) if not running. |
agen cli <input> |
One-shot agent run; every tool call asks for confirmation. |
agen run <input> |
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|planner|reasoning} |
Manage providers / worker models, pick planner 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. |
agen discord {enable|disable} |
Toggle the Discord bot; enable prompts for token, verifies connection, then writes to keychain. |
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. |
/planner |
Pick the planner model from cfg.Models via popup. No inline arg. |
/reasoning [global|session] |
Pick low / medium / high for the planner (global) or the active session. Inline arg skips the scope popup. |
/discord [enable|disable] |
Toggle Discord bot connection. Inline arg switches without the popup. |
/cron [add|remove|edit] |
Manage recurring schedules. add opens a multiline requirement textarea → dispatches /scheduler-skill-creator <requirement> (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 <YYYY-MM-DD HH:MM> <skill>. |
/sched-<name> |
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. |
/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 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. |
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. |
| 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__<server>__<tool> from configured MCP servers, api_<name> from extensions/apis/*.json, script_<name> from extensions/scripts/<name>/.
Wiki
License
This project is licensed under the Apache License 2.0.
Contributor
Just open an issue 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
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found