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  PostCompact

Memory 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.