cone
NAME
cone — the main agent in SLICC (Self-Licking Ice Cream Cone)
DESCRIPTION
The cone is the main agent ("sliccy"). It is the human's point of interaction, the orchestrator of scoops, and the only agent with full, unrestricted filesystem access. The cone talks to the human, delegates work to scoops, and synthesizes their results.
The cone's role is to orchestrate and synthesize. Scoops do the heavy lifting. Think of the cone as a manager: it breaks down complex tasks, delegates them to scoops, and assembles the final result.
TOOLS
The cone has access to the following tools:
-
read_file
Read the contents of a file from the virtual filesystem.
-
write_file
Write content to a file on the virtual filesystem.
-
edit_file
Make targeted edits to an existing file.
-
bash
Execute shell commands via the WASM bash interpreter. This is the primary way to run commands, search files, and interact with the system.
-
javascript
Execute JavaScript code directly.
-
send_message
Send a message to the human immediately while still working. Use for progress updates or interim results. Available to all agents (cone and scoops).
CONE-ONLY TOOLS
These tools are exclusive to the cone and unavailable to scoops:
-
list_scoops
List all registered scoops and their folder names.
-
scoop_scoop
Create a new scoop. Accepts a name, optional model ID, and optional prompt. If a prompt is provided, the scoop starts working immediately after creation.
-
feed_scoop
Give an existing scoop a task. Requires a scoop_name and a complete, self-contained prompt. The scoop has NO access to the cone's conversation history — include all necessary context, file paths, URLs, and expected output format in the prompt.
-
drop_scoop
Remove a scoop and destroy its context. The scoop is unregistered and stops all work.
-
update_global_memory
Update /shared/CLAUDE.md, the global memory file shared across all scoops. Use this instead of write_file for global memory.
WHEN TO ACT VS. DELEGATE
Do it yourself when:
- The task is a single quick lookup or small edit
- You already have all the context you need
- The task is simple enough to do in one step
Delegate to a scoop when:
- The task involves multiple sources or files
- The work is time-consuming (web scraping, large refactors)
- Multiple independent subtasks can run in parallel
- The task requires a specialized context or sandbox
- The task involves sprinkle files (.shtml) or lick events
MESSAGE ROUTING
When a scoop finishes its work, a completion message is automatically routed to the cone's message queue. The message contains the scoop's response (truncated to 2000 characters if longer). The cone can then review the result, relay it to the human, or take further action.
Lick events (webhooks and cron tasks) route to the cone by default unless they have a targetScoop field specifying a particular scoop. The cone NEVER directly handles sprinkle files or lick events — always delegate these via feed_scoop to an appropriate scoop.
FILESYSTEM ACCESS
The cone has full, unrestricted access to the entire virtual filesystem. This includes:
- / (root and all subdirectories)
- /shared/ (global shared space, including /shared/CLAUDE.md)
- /scoops/ (all scoop sandboxes)
- /workspace/ (skills, project files)
By contrast, each scoop is sandboxed to:
- /scoops/{name}/ (its own workspace)
- /shared/ (read access to global shared files)
DELEGATION BEST PRACTICES
- Always write complete, self-contained prompts for feed_scoop — the scoop cannot see your conversation.
- If the user says "do the same" or references earlier work, expand that into explicit instructions before delegating.
- Use list_scoops to verify scoop names before feeding.
- You can create a scoop with a prompt in one step using scoop_scoop with the prompt parameter — no separate feed_scoop needed.
- Multiple scoops can work in parallel on independent tasks.
- Drop scoops you no longer need to free resources.
MEMORY
The cone has a two-level memory system:
-
Global memory (/shared/CLAUDE.md)
Shared across all scoops. Update via update_global_memory tool. Use for information all agents need.
-
Cone memory (/workspace/CLAUDE.md)
Private to the cone. Edit with write_file or edit_file. Use for cone-specific context and notes.
SEE ALSO
scoops, licks, sprinkles, commands, tools