Default actions
This page lists every default (built-in, non-integration) action with its action set, parameters, and purpose. It is generated from the @action(...) decorators in CraftBot's app/data/action/ by scripts/gen_default_actions.py, so it reflects the code as of the last time that script was run. For how actions are registered, grouped into sets, selected, and executed, read Actions and action sets.
Two other groups of actions exist beyond this page. Integration actions (for example create_github_issue) are documented on each service's page in Integrations. MCP tool actions are created dynamically as mcp_<server>_<tool> when you connect an MCP server.
The Set column shows which action set the action belongs to. Actions in core are available in every task. Actions in other sets are available only when the task selected that set. Actions marked Irreversible are guarded so a retried turn does not repeat them.
There are 64 default actions.
Task control
| Action |
Set |
Parameters |
What it does |
set_requirement |
core |
requirements |
Record (or update) the concrete, checkable requirements that define DONE for the current deliverable. |
send_message |
core |
message, continue_work |
Use this action to deliver a text update to the user; it is recorded in the conversation log and event stream. Irreversible. |
send_message_with_attachment |
core |
message, file_paths, continue_work |
Send a message to the user with one or more file attachments. Irreversible. |
end_turn |
core |
none |
End the current run without sending any message. |
wait |
core |
seconds |
Pause execution for a specified duration. |
spawn_subagent |
core |
none |
See the source for details. |
sub_task_end |
n/a |
status, result |
End your sub-agent run. |
Files and search
| Action |
Set |
Parameters |
What it does |
read_file |
core |
file_path, encoding, offset, limit, max_line_length |
Reads a file and returns its contents with line numbers. |
write_file |
core |
file_path, content, encoding, mode |
Write or overwrite a text file with the provided content. |
stream_edit |
core |
file_path, old_string, new_string, replace_all, regex, ignore_case |
Performs string replacement in a file. |
find_files |
core |
pattern, recursive, base_directory, all_drives, limit |
Finds files by name or pattern across the system. |
grep_files |
core |
none |
Searches files for a regex pattern and returns results. |
list_folder |
core |
path |
Lists the contents of a specified folder/directory. |
Web research
| Action |
Set |
Parameters |
What it does |
web_search |
core |
query, num_results |
Performs web search and returns search result snippets with markdown hyperlinks. |
web_fetch |
core |
url, mode, timeout, max_content_length, use_jina_fallback |
Fetches a URL and returns cleaned text/markdown content. |
Shell and HTTP
| Action |
Set |
Parameters |
What it does |
run_shell |
core |
command, shell, timeout, cwd, env, background |
Executes a shell command using the appropriate OS shell, capturing stdout, stderr, and exit code. |
http_request |
core |
method, url, headers, params, json, data, timeout, allow_redirects, verify_tls, save_to, include_headers |
Sends HTTP requests (GET, POST, PUT, PATCH, DELETE) with optional headers, params, and body. |
Clipboard
| Action |
Set |
Parameters |
What it does |
clipboard_read |
core |
none |
Read the current content from the system clipboard. |
clipboard_write |
core |
content |
Write text content to the system clipboard. |
Scheduling
| Action |
Set |
Parameters |
What it does |
schedule_task |
scheduler, core, proactive |
name, instruction, schedule, priority, enabled, action_sets, skills, payload |
Schedule a task for execution. |
scheduled_task_list |
scheduler, core, proactive |
none |
List all scheduled tasks configured in the scheduler. |
schedule_task_toggle |
scheduler, proactive |
schedule_id, enabled |
Enable or disable a scheduled task by its ID. |
remove_scheduled_task |
scheduler, core, proactive |
schedule_id |
Remove a scheduled task from the scheduler by its ID. |
Recurring proactive tasks
| Action |
Set |
Parameters |
What it does |
recurring_add |
proactive |
name, frequency, instruction, time, day, priority, permission_tier, enabled, conditions |
Add a new recurring task to PROACTIVE.md. |
recurring_read |
proactive |
frequency, enabled_only |
Read and parse recurring tasks from PROACTIVE.md. |
recurring_update_task |
proactive |
task_id, updates, add_outcome |
Update an existing recurring task in PROACTIVE.md. |
recurring_remove |
proactive |
task_id |
Remove a recurring task from PROACTIVE.md. |
Memory
| Action |
Set |
Parameters |
What it does |
memory_search |
core |
none |
Search the agent's memory for relevant information based on a semantic query. |
Skills and action sets
| Action |
Set |
Parameters |
What it does |
list_skills |
core |
none |
List all enabled skills with their names and descriptions. |
use_skill |
core |
skill_name |
Load a skill into this session: its instructions are injected into your context and its recommended action sets are loaded. |
list_action_sets |
core |
none |
List all available action sets and their descriptions. |
add_action_sets |
core |
action_sets |
Load additional action sets from the capability catalog to expand the actions available in this session. |
remove_action_sets |
core |
action_sets |
Unload action sets from this session to reduce available actions. |
Integration management
| Action |
Set |
Parameters |
What it does |
list_available_integrations |
core |
filter_connected |
List all available external app integrations and their connection status. |
connect_integration |
core |
integration_id, credentials, auth_method |
Connect an external app integration. |
check_integration_status |
core |
integration_id, session_id |
Check the connection status of a specific integration, or check the status of an ongoing WhatsApp QR code session. |
disconnect_integration |
core |
integration_id, account_id |
Disconnect an external app integration. |
Documents and PDF
| Action |
Set |
Parameters |
What it does |
read_pdf |
document_processing |
file_path, mode, page_range, include_metadata |
Reads a PDF and returns its content. |
edit_pdf |
document_processing |
file_path, output_path, operations |
Edits an existing PDF by applying a list of operations and saves the result to a new file. |
convert_to_pdf |
document_processing |
none |
Universal source-to-PDF converter. |
convert_from_pdf |
document_processing |
source_path, output_path, target_format, mode |
Universal PDF-to-source converter. |
convert_to_markdown |
document_processing |
input_file, output_md |
Cleans scraped text from .txt, .md, or .docx and converts it into clean, well-structured Markdown suitable for PDF conversion. |
perform_ocr |
document_processing, image, video |
image_path, user_prompt |
Extracts all text from an image using OCR via a Vision Language Model. |
| Action |
Set |
Parameters |
What it does |
describe_image |
core, document_processing, image |
image_path, prompt |
Uses a Visual Language Model to analyse an image and return a detailed, markdown-ready description. |
understand_video |
document_processing, image, video |
video_path, query, max_frames |
Uses the configured VLM model (default: Gemini 1.5 Pro) for native video understanding when a Google API key is configured. |
generate_image |
content_creation, image, document_processing |
prompt, output_path, resolution, aspect_ratio, number_of_images, negative_prompt, reference_images, safety_filter_level |
Generates an image from a text prompt using the configured image generation provider (OpenAI gpt-image-2 or Google Gemini). |
generate_video |
content_creation, video |
prompt, output_path, duration_seconds, aspect_ratio, resolution, number_of_videos, negative_prompt, reference_image, last_frame, reference_images, seed, with_audio, person_generation, camera_fixed, watermark, callback_url |
Generates a video from a text prompt using the configured video generation provider (Google Gemini Veo, OpenAI Sora, or BytePlus Seedance). |
Living UI
| Action |
Set |
Parameters |
What it does |
living_ui_scaffold |
living_ui |
name, description, features, chat_context, theme, auth_mode |
Create and register a new Living UI project from the template, then dispatch the build to the project's dedicated session. |
living_ui_notify_ready |
living_ui |
project_id |
Launch or RELAUNCH a Living UI project: installs dependencies, runs the validation gate, restarts backend and frontend, notifies the browser. |
living_ui_restart |
living_ui |
project_id |
Restart a Living UI project (backend + frontend). |
living_ui_report_progress |
living_ui |
project_id, phase, progress, message |
Report progress ONLY during Living UI creation (initial build). |
living_ui_import_zip |
living_ui |
zip_path, name |
Import a Living UI project from an exported ZIP file (round-trip with export): registers it as a NEW project with fresh identity and port, strips shipped credentials, and re-vendors the kit. Irreversible. |
living_ui_http |
living_ui |
project_id, method, path, headers, params, json, data, timeout, target |
FALLBACK ONLY — prefer the lui CLI via run_shell (node /living-ui/tools/src/cli.ts ops |
Other actions
Actions present in the code that are not yet grouped above.
| Action |
Set |
Parameters |
What it does |
browser_probe |
living_ui |
url, steps, project_path |
Drive a RUNNING Living UI in a headless browser (invisible — no window). |
living_ui_approve_triggers |
living_ui |
project_id |
Approve a Living UI app's declared agent triggers (its triggers.json — requests the app may fire at the agent). |
living_ui_convert |
living_ui |
source, name, description |
REBUILD a foreign (non-Living-UI) app as a Living UI: scaffolds a fresh Living UI project, ships the original source (zip / folder / git URL) as read-only reference material, synthesizes the requireme... Irreversible. |
living_ui_import |
living_ui |
source, name |
Import a Living UI project from ANY source: an exported ZIP file, a local folder path, or a git URL (GitHub downloads fast; other hosts are cloned depth-1). Irreversible. |
living_ui_list_projects |
living_ui |
none |
List the user's Living UI projects: id, name, status, URL, path, and whether the app is delivered. |
living_ui_marketplace_install |
living_ui |
app_id, name, description, will_adapt |
Install a pre-built Living UI app from the marketplace by id (resolve ids with living_ui_marketplace_list). Irreversible. |
living_ui_marketplace_list |
living_ui |
none |
List the Living UI marketplace catalogue: pre-built apps the user can install by id. |
living_ui_usage |
living_ui |
project_id |
Get the operating manual for a Living UI project: its path, data schema, and the exact lui CLI commands (run via run_shell) to read/write its data and run its operations. |
living_ui_walk_verify |
living_ui |
project_id |
Run the independent walk-verify sub-agent against the RUNNING Living UI project: a real browser (headless) drives the app feature-by-feature against reference/requirements.md. |
unload_skill |
core |
skill_name |
Unload a previously loaded skill from this session, removing its instructions from your context. |
update_todos |
core |
todos |
Update the todo list for the current run of this session. |
Next