Chat mode and the tool-belt

sigil chat is a conversational, tool-using agent — one running conversation from which you can do everything. It renders replies as markdown, streams a live trace of every tool call, and prompts inline to approve any gated shell command.

The agent decides first whether a message even needs a tool. Greetings, questions, and anything answerable in words get a plain reply — tools are only used for real side effects (files, code, live data, scheduling, memory, delegation).

The tools

Files & code (jailed to the workspace — see workspace-and-sandbox) - ws_list(subdir) — one directory level; ws_tree(subdir, depth) — recursive survey (noise dirs like .git/node_modules skipped), for getting the shape of a repo. - ws_grep(pattern, path) — regex search across files, returns path:line: text. - ws_read(path, offset, limit) — read a file; large files are paged (line-numbered, with a lines X-Y of N header), so read on rather than concluding from the first page. - ws_write(path, content) · ws_edit(path, old, new). - ws_exec(command) — real shell, runs through the exec-approval gate + sandbox. ws_tree / ws_grep / ws_read are read-only and need no approval.

When analyzing a codebase, the agent surveys with ws_tree, locates with ws_grep, and reads several files before drawing conclusions — and fans out with spawn_parallel for a repo-scale review.

Web - web_search(query) — open-web search via a provider (needs BRAVE_API_KEY or FIRECRAWL_API_KEY; see models/setup). - web_fetch(url) — read a specific URL, SSRF-guarded. Works on keyless JSON APIs (e.g. GitHub's api.github.com), so "new PRs/issues in a repo" needs no search key.

Automationschedule_task · list_scheduled · cancel_scheduled. See automation-and-cron.

Memory & skillsremember_fact · recall_memory · learn_skill · list_skills. See memory-and-skills.

Sub-agentsspawn_parallel(tasks) runs independent sub-tasks concurrently (via Jac flow/wait over root-spawned worker walkers); spawn_subagent(task) delegates one.

Channels & externalconnect_channel(kind) and setup_channel(name, kind) for messaging setup (see channels); send_message(channel, peer, text); mcp_call(name, args_json) for registered MCP servers.

Self-configcfg_set_model · cfg_set_persona · cfg_set_prompt_mode.

Docslist_docs() and read_docs(topic): the agent reads this reference to answer questions about itself.

Slash commands (in the REPL)

/help · /soul · /config · /tools · /workspace · /sandbox <mode> · /cron · /channels · /connect <kind> · /skills · /docs [topic] · /model <tier> <name> · /remember <fact> · /recall <query> · /reset · /clear · /exit.

Tool policy

Which tools are permitted is governed by tool_allow / tool_deny / tool_profile on the soul (see configuration). Deny wins over allow.