Routines and agents
Routines, sub-agents, skills, MCP, hooks, memory and remote chat.
Routines
Routines run on a schedule or when the app shuts down. Repeat once, daily, weekly, monthly, on an interval, or on a cron expression.
- Each run has its own conversation loop and appears as a session in the chat list.
- Each routine has its own list of allowed plugins and folders.
- Runs are headless, so approvals above low risk wait for you in the queue.
- If a plugin it needs is missing, the run is skipped or marked as needing attention.
Sub-agents and side chat
An agent can start sub-agents one level deep. They appear in the Sub-agents tab of the work panel.
- agent_send
- From a sub-agent to its parent or a sibling.
- agent_guide
- From the parent to a sub-agent.
- agent_spawn(resumeId)
- Resumes a paused sub-agent.
Mailboxes are kept on disk. Side chat is a separate conversation opened from a work-panel tab and nested under its parent in the sidebar.
Skills
Only a skill’s name, description and triggers sit in the prompt; the body is loaded on demand with skill_load. The first load asks for approval, and the approval is bound to the content’s SHA-256. Skills live in ~/.ave/skills.
MCP
Connect MCP servers or import a Claude Desktop configuration. MCP apps that use ui:// cards appear as interactive cards in the conversation. MCP tools and plugin tools share one permission path.
Hooks
Shell scripts named pre-*.sh, post-*.sh and perm-*.sh run on PreToolUse, PostToolUse and PermissionRequest. The other events are reached only through a hooks.json configuration you have trusted.
PreToolUse PostToolUse PostToolUseFailure
PermissionRequest PermissionDenied
UserPromptSubmit SessionStart Stop
PreCompact PostCompactMemory and remote chat
Memory is kept by the host, per project, and merges the project’s AGENTS.md.
The Telegram bridge pairs one private chat with one Ave conversation. It is off by default; turn it on in Settings → Connections → Remote surfaces.