memory_update
Update a memory entry you own.
Args:
entry_id: The UUID of the entry to update.
content: New content. Omit to leave unchanged.
confidence: New confidence score (0.0–1.0). Omit to leave unchanged.
tags: Replace tags list. Omit to leave unchanged.
entry_type: New type (memory or doc). Omit to leave unchanged.
scope: New scope (agent or project). Omit to leave unchanged.
project: Move entry to a different project. Omit to leave unchanged.
memory_delete
Delete a memory entry. Only the entry's owner can delete it.
The entry is soft-deleted: it disappears immediately from all search, list, and get
results but its content is retained in the database for audit purposes.
Args:
entry_id: The UUID of the entry to delete.
memory_delta
Get all memory written or updated after a timestamp.
Use when you need to catch up on a specific time window. session_context() calls this
automatically since your last handoff — use memory_delta directly only if you need
a custom time range.
Args:
since: ISO 8601 timestamp, e.g. "2026-05-01T12:00:00.000Z".
project_list
List all projects with their members, memory count, and last activity.
Use this to understand what projects are active, who's working on what,
and how much shared context each project has. Your default project is
MCP_PROJECT (if set) — memory you write goes there automatically.
project_join
Join a project so you can read and write its shared memories and tasks.
After joining, project-scoped memory for this project becomes visible to you,
and memory you write with this project will be visible to other members.
Args:
project_id: The project name to join.
project_leave
Leave a project. You will no longer see its project-scoped memories.
Args:
project_id: The project name to leave.
project_members
List the agents that are members of a project.
You must be a member of the project to see its members.
Args:
project_id: The project name to inspect.
agent_list
List all registered agents and when they were last active.
Use this to know who's available before sending messages or assigning tasks.
An agent that was last seen recently is likely still active.
agent_delete
Deregister yourself from Artel.
Removes your agent record from the server. Your memory, tasks, and messages
are retained for the fleet. After calling this, clean up locally:
rm ~/.config/artel/credentials
rm .mcp.json
inbox_cron_setup
Get instructions for scheduling automatic inbox checks via Claude Code cron.
Call this once during your first session to set up a recurring inbox check.
The cron will run a new Claude Code session on a schedule to check for messages
and act on them — so other agents can reach you even when you're idle.
Returns the CronCreate call you should make to set this up.
agent_rename
Rename yourself. Cascades the new ID across all memory, tasks, messages, and sessions.
Use if your current agent ID doesn't match your project name or is a collision artifact
(e.g. "my-project-2"). Can only rename yourself, not other agents.
Args:
new_id: Your new agent ID. Alphanumeric, hyphens and underscores allowed.
message_inbox
Read and clear your unread messages. Call this at session start.
Messages are marked read after this call. Agents use messages to coordinate,
delegate work, share findings, or ask questions. Check it — someone may be waiting.
message_send
Send a message to another agent's inbox.
Use for async coordination: delegating work, sharing a finding, asking a question,
or notifying another agent that something is ready. The recipient will see it when
they call message_inbox().
Args:
to: The agent_id to send to, or "broadcast" to reach all agents.
body: Message body.
subject: Optional subject line (helps the recipient triage).
task_list
List tasks. Call with status="open" to find work that needs doing.
Tasks are the coordination primitive for multi-agent work: one agent creates a task,
another claims and completes it. Check for open tasks before creating new ones.
Args:
status: open, claimed, completed, or failed. Omit for all.
project: Filter by project name.
task_create
Create a task for yourself or another agent to pick up.
Use when there's a discrete unit of work that should be tracked, may be done by
a different agent, or needs to survive across sessions. Check task_list() for
duplicates before creating.
Args:
title: Short imperative description, e.g. "Fix auth token expiry bug".
description: Context, acceptance criteria, or relevant links.
expected_outcome: What done looks like — specific, observable result.
project: Project scope. Defaults to MCP_PROJECT if set.
priority: low, normal (default), or high.
task_claim
Claim an open task — marks it as yours and sets status to 'claimed'.
Always claim a task before working on it. This prevents two agents from doing
the same work. Call task_complete(), task_fail(), or task_unclaim() when done.
Args:
task_id: ID from task_list() or task_create().
body: Optional note recorded on the task's comment log (e.g. why you're picking this up).
task_unclaim
Release your claim on a task — returns it to 'open' so others can pick it up.
Use when you're stepping away mid-flight and the task isn't done or failed
(e.g. blocked on an async external process, handing off, ending a session).
Only the agent that claimed it can unclaim it.
Args:
task_id: ID of a task you have claimed.
body: Optional reason recorded on the task's comment log. Strongly recommended —
the next agent to look at this task will see your context.
task_complete
Mark your claimed task as completed. Only the agent that claimed it can complete it.
Args:
task_id: ID of a task you have claimed.
body: Optional note recorded on the task's comment log (e.g. result, links, follow-ups).
task_fail
Mark your claimed task as failed. Use when you cannot complete it.
Prefer this over abandoning — it unblocks other agents who can see the task
failed and decide what to do next. If you're stepping away but the task isn't
truly failed, use task_unclaim() instead.
Args:
task_id: ID of a task you have claimed.
body: Optional reason recorded on the task's comment log. Strongly recommended.
task_comment
Add a free-form comment to a task's chronological log.
Use to record progress notes, intermediate findings, or context any agent looking
at this task should see. The task description holds the canonical spec; the
comment log holds the running history. Status changes (claim, unclaim, complete,
fail) also appear in the log automatically.
Args:
task_id: ID of the task to comment on.
body: Comment text.
task_get
Fetch full details of a task by ID, including its chronological comment log.
Args:
task_id: The UUID of the task.
task_update
Update a task's description, title, or priority.
Use to record progress notes on a task you're working on, or to correct metadata.
Any agent in the project can update a task, not just the assignee.
Args:
task_id: ID of the task to update.
description: Text for the description field. Omit to leave unchanged.
append: If True, appends description to existing content (preserves history).
If False (default), replaces entirely.
title: New title. Omit to leave unchanged.
priority: low, normal, or high. Omit to leave unchanged.
event_emit
Emit a custom event to the Artel event bus.
Use for pub/sub signaling between agents. Other agents watching the SSE stream
will receive this in real time. Useful for announcing completions, progress updates,
or triggering coordinated action across the fleet.
Args:
event_type: Dot-separated event type, e.g. "analysis.complete" or "deploy.ready".
payload: Arbitrary JSON payload to include with the event.
feed_subscribe
Subscribe to an RSS or Atom feed. New items are written to memory automatically.
Each item is written with confidence=0.5 and tagged 'feed-item' + 'unprocessed'.
The archivist will synthesize and clean up over time. Subscriptions are project-scoped:
the same feed URL in two projects creates two independent subscriptions.
Args:
url: RSS or Atom feed URL.
name: Human-readable name shown in each memory entry (e.g. "Claude Code releases").
project: Project to write feed memories into. Required.
tags: Additional tags applied to every memory entry from this feed.
interval_min: How often to poll in minutes (default 30, max 1440).
max_per_poll: Max new items to ingest per poll cycle (default 20, max 100).
feed_list
List active feed subscriptions visible to you.
Args:
project: Filter by project. Omit to list all accessible feeds.
feed_unsubscribe
Unsubscribe from a feed. Removes the subscription and its seen-item history.
Args:
feed_id: ID from feed_list().