Skip to content

Tools

Kins interact with the world through tools — functions they can call during conversations. KinBot provides 100+ built-in tools, plus support for MCP servers and custom scripts.

ToolDescription
recallSemantic search across memories
memorizeStore a new memory
update_memoryEdit an existing memory
forgetDelete a memory
list_memoriesBrowse all memories with filters
review_memoriesReview and curate memories
search_historyFull-text search through past conversation messages
search_knowledgeSearch the knowledge base (uploaded documents)
list_knowledge_sourcesList available knowledge sources
ToolDescription
web_searchSearch the web (provider configurable per Kin)
browse_urlFetch and read a web page
extract_linksExtract all links from a URL
screenshot_urlTake a screenshot of a web page
ToolDescription
get_contactGet full contact details by ID
search_contactsSearch across all contacts
create_contactCreate a new contact with identifiers
update_contactUpdate contact info or add identifiers
delete_contactRemove a contact
set_contact_noteAdd private or global notes to a contact
find_contact_by_identifierLook up a contact by platform/identifier
ToolDescription
get_secretRetrieve a secret value by key
create_secretStore a new secret
update_secretUpdate an existing secret
delete_secretRemove a secret
search_secretsSearch secrets by query
redact_messageRedact sensitive content from a chat message
get_vault_entryRetrieve a structured vault entry
create_vault_entryCreate a structured vault entry
create_vault_typeDefine a custom vault type (e.g. “WiFi Network”)
get_vault_attachmentRetrieve a vault entry’s attachment

These tools let a Kin spawn background sub-agents and manage delegated work:

ToolAvailabilityDescription
spawn_selfmainSpawn a sub-agent of yourself
spawn_kinmainSpawn a sub-agent of another Kin
respond_to_taskmainRespond to a completed/failed task
cancel_taskmainCancel a running task
list_tasksmainList all tasks
list_active_queuesmainList active concurrency groups with status (active/queued counts)
get_task_detailmainGet details of a specific task
report_to_parentsub-kinSend progress updates to the parent
update_task_statussub-kinMark the task as completed or failed (mandatory)
request_inputsub-kinAsk the parent for clarification

spawn_self and spawn_kin support optional concurrency control:

  • concurrency_group — Queue name (e.g. "batch-issues", "api-calls"). Tasks in the same group are limited to concurrency_max parallel executions.
  • concurrency_max — Max concurrent tasks in the group. Required if concurrency_group is set. Default: 1.

Excess tasks enter queued status and are automatically promoted (FIFO) when a slot opens. Use list_active_queues to monitor queue status.

ToolDescription
send_messageSend a message to another Kin (request or inform)
replyReply to an inter-Kin request
list_kinsList all available Kins
ToolDescription
create_cronCreate a scheduled recurring task
update_cronUpdate a cron job
delete_cronRemove a cron job
list_cronsList all cron jobs
get_cron_journalView a cron’s execution history
trigger_cronManually trigger a cron job
wake_me_inSet a one-shot timer (“remind me in 30 minutes”)
cancel_wakeupCancel a pending wakeup
list_wakeupsList pending wakeups
ToolDescription
create_mini_appCreate a new mini-app
update_mini_appUpdate app metadata
delete_mini_appDelete an app
list_mini_appsList all mini-apps
write_mini_app_fileWrite a file to an app’s workspace
read_mini_app_fileRead a file from an app
delete_mini_app_fileDelete a file
list_mini_app_filesList all files in an app
get_mini_app_storageRead a persistent KV entry
set_mini_app_storageWrite a persistent KV entry
delete_mini_app_storageDelete a KV entry
list_mini_app_storageList all KV keys
clear_mini_app_storageClear all KV entries
create_mini_app_snapshotSave a snapshot before risky changes
list_mini_app_snapshotsList available snapshots
rollback_mini_appRestore from a snapshot
get_mini_app_templatesBrowse starter templates
get_mini_app_docsGet mini-app SDK documentation
browse_mini_appsBrowse the App Gallery (apps from all Kins)
generate_mini_app_iconGenerate an icon for an app
ToolDescription
list_channelsList configured messaging channels
list_channel_conversationsList recent conversations on a channel
send_channel_messageSend a message to a channel
create_channelCreate a new messaging channel
update_channelUpdate channel configuration
delete_channelDelete a messaging channel
activate_channelActivate an inactive channel
deactivate_channelDeactivate an active channel
ToolDescription
store_fileCreate a shareable file (text, base64, URL, or workspace path)
get_stored_fileGet file metadata and download URL
list_stored_filesList all stored files
search_stored_filesSearch files by name or description
update_stored_fileUpdate file metadata
delete_stored_fileDelete a stored file
attach_fileAttach a file to the current message
generate_imageGenerate an image using a configured provider
list_image_modelsList available image generation models
ToolDescription
create_webhookCreate an incoming webhook with optional payload filtering and dispatch mode
update_webhookUpdate webhook configuration, including filters and dispatch mode
delete_webhookRemove a webhook
list_webhooksList all webhooks with filter, dispatch, and stats info

Webhooks support payload filtering to drop irrelevant events before they reach the Kin queue, saving LLM tokens. Two filter modes are available:

  • Simple mode (filter_mode: "simple"): Extract a value from the JSON payload using a dot-notation path (filter_field, e.g. "action" or "event.type") and match against an allowlist (filter_allowed_values). Case-insensitive matching.
  • Advanced mode (filter_mode: "advanced"): Test the raw payload body against a regex pattern (filter_expression).

Set filter_mode to null to disable filtering.

Webhooks support two dispatch modes:

  • conversation (default): The payload is injected as a message in the Kin’s main conversation session.
  • task: The payload spawns an autonomous sub-task with a configurable prompt template.

Task mode parameters:

ParameterDescription
dispatch_mode"conversation" or "task"
task_title_templateTemplate for task title. Use {{field.path}} placeholders resolved against the JSON payload (e.g. "GitHub: {{action}} on #{{issue.number}}")
task_prompt_templateTemplate for the task description/prompt. Use {{field.path}} placeholders and {{__payload__}} for the full raw payload
max_concurrent_tasksMax concurrent webhook-spawned tasks. Default: 1. 0 = unlimited. Uses the concurrency group system internally
ToolDescription
create_kinCreate a new Kin
update_kinUpdate a Kin’s configuration
delete_kinDelete a Kin
get_kin_detailsGet full details of a Kin
ToolDescription
list_installed_pluginsList installed plugins
browse_plugin_storeBrowse the plugin store
install_pluginInstall a plugin
uninstall_pluginRemove a plugin
enable_pluginEnable a disabled plugin
disable_pluginDisable a plugin
configure_pluginSet plugin configuration
get_plugin_detailsView plugin details and config schema
ToolDescription
list_usersList all platform users
get_userGet user details
create_invitationCreate a signup invitation link
ToolAvailabilityDescription
prompt_humanmain, sub-kinAsk the user a question and wait for a response
notifymain, sub-kinSend a notification to the user
ToolDescription
read_fileRead a text file or extract text from a PDF. Supports offset/limit for large files
write_fileCreate or overwrite a file
edit_fileReplace exact text in a file. Supports replaceAll flag for bulk find-and-replace
multi_editApply multiple text replacements to a single file atomically (all succeed or none applied)
list_directoryList files and directories with optional glob pattern filtering
grepRegex search across files using ripgrep (with grep fallback). Supports 3 output modes: content, files_with_matches, count. Glob filtering, context lines, multiline mode
ToolDescription
run_shellExecute a shell command (main + sub-kin)
http_requestMake HTTP requests to external APIs
get_platform_configRead current KinBot configuration (sensitive values redacted)
get_platform_logsView KinBot platform logs (opt-in)
update_platform_configModify a config value in the .env file (opt-in)
restart_platformTrigger a graceful restart of KinBot (opt-in)
get_system_infoGet system/platform information
execute_sqlRun raw SQL on the database (opt-in, dangerous)
ToolDescription
add_mcp_serverRegister a new MCP server
update_mcp_serverUpdate MCP server configuration
remove_mcp_serverRemove an MCP server
list_mcp_serversList configured MCP servers
ToolDescription
register_toolCreate a custom tool with a script
run_custom_toolExecute a custom tool
list_custom_toolsList registered custom tools

Each Kin has a tool config that controls access:

{
"disabledNativeTools": ["run_shell", "execute_sql"],
"mcpAccess": {
"server-id": ["*"]
},
"enabledOptInTools": ["create_kin", "get_platform_logs", "update_platform_config", "restart_platform"],
"searchProviderId": "provider-id"
}
  • disabledNativeTools — deny-list of native tools to hide from this Kin
  • mcpAccess — which MCP server tools the Kin can use (["*"] for all tools on a server, or specific tool names)
  • enabledOptInTools — explicitly enable tools that are disabled by default (kin management, plugin management, platform tools, execute_sql)
  • searchProviderId — override the global web search provider for this Kin

Configure this in the Kin’s settings page in the UI.

Some powerful tools are disabled by default and must be explicitly enabled via enabledOptInTools:

ToolsWhy opt-in
create_kin, update_kin, delete_kin, get_kin_detailsCan modify platform structure
All plugin management toolsCan install/remove server extensions
get_platform_logsExposes internal server logs
update_platform_configCan modify server configuration
restart_platformCan restart the entire KinBot process
execute_sqlDirect database access — use with extreme caution

Tools declare which contexts they’re available in:

ContextDescription
mainThe primary Kin agent in a conversation
sub-kinA sub-agent spawned via spawn_self or spawn_kin

Most tools are main-only. The following are also available to sub-kins:

  • report_to_parent, update_task_status, request_input (sub-kin only)
  • prompt_human, notify, run_shell, http_request

Sub-kins have access to standard tools (memory, web, contacts, vault, files, etc.) and inter-Kin communication (send_message, list_kins), but not administrative tools (cron, webhooks, channels, kin management).

When a sub-kin sends an inter-Kin message:

  • request type: The task suspends (awaiting_kin_response status) until the recipient replies or the timeout expires (default: 5 minutes)
  • inform type: Fire-and-forget, the task continues immediately
  • Sub-kins can make up to 3 inter-Kin requests per task (configurable via maxInterKinRequests)

Model Context Protocol servers extend Kins with external tools. Kins can even manage their own MCP connections (with user approval).

MCP servers added by a Kin start in pending_approval status and must be approved by an admin before they become active.

To connect an MCP server:

  1. Go to Settings > MCP Servers
  2. Add the server command, args, and environment variables
  3. Assign it to specific Kins via their tool config (mcpAccess)

Kins can also manage MCP servers programmatically using add_mcp_server, update_mcp_server, remove_mcp_server, and list_mcp_servers.

Kins can create their own tools by writing scripts:

  1. The Kin calls register_tool with a name, description, and script
  2. The script is stored in the Kin’s workspace
  3. The Kin (or other tools) can invoke it via run_custom_tool

This lets Kins build specialized automation without needing code changes to KinBot.