Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.bumbleagi.com/llms.txt

Use this file to discover all available pages before exploring further.

Tools are how the entity interacts with the world — not “services for the user,” but senses and reach. The entity decides when and how to use tools based on conversation context. Both reflex and deliberate reasoning profiles share the same tool registry, and the agent loop executes multiple tool calls in parallel when the model emits them in one step. When presence.tool_activity is enabled, tool use surfaces in chat with short status lines so the user can see what the entity is doing.

How the entity uses tools

Tools are registered at startup based on YAML configuration and installed extras. During each turn, the perceive pipeline routes to either reflex or deliberate reasoning. Both profiles have access to the full tool registry — the difference is token budget and thinking mode. The bounded agent loop runs tool calls, inspects results, and decides whether to continue (more tools needed), produce a final reply, or report a failure. A context-aware nudge after each tool round tells the model which tools ran and whether they succeeded, referencing the user’s original question. A completion gate prevents thin acknowledgements from escaping as final replies. The entity can chain tools across multiple rounds. For example, a question about current weather might trigger get_weather, while a research question might chain search_web into fetch_url into a synthesized reply. The maximum number of tool rounds per turn is controlled by cognition.tool_continuation_rounds (default 21).

Complete tool reference

Every built-in tool, its harness configuration key, and default state. Tools marked “always on” have no enabled gate — they register whenever the harness starts. Others are toggled via tools.<key>.enabled in configs/default.yaml or per-entity YAML.
ToolHarness keyDefaultDescription
search_webonWeb search (DuckDuckGo by default; optional Firecrawl)
fetch_urlonFetch and extract text from a URL

Shell and processes

ToolHarness keyDefaultDescription
run_commandshellonRun a shell command (denylist + timeout)
run_backgroundshellonStart a background shell command
check_processshellonInspect a tracked background job
kill_processshellonStop a background job

Filesystem

ToolHarness keyDefaultDescription
read_fileonRead a file under the execution workspace
write_fileonWrite or create a file
append_fileonAppend to an allowed file path
list_directoryonList files under the workspace directory
search_filesonSearch by pattern under the workspace
apply_patchonApply a unified diff hunks to workspace files (atomic multi-file edits)
send_fileonSend a workspace file to the active chat (Telegram/Discord) with optional caption

Episodic memory

ToolHarness keyDefaultDescription
search_past_conversationsonSemantic search over episodic summaries (natural-language query; embedding-backed)

Session planning

ToolHarness keyDefaultDescription
todo_addonAdd an item to the in-session todo list
todo_listonList pending session todos
todo_completeonMark a session todo done
todo_removeonRemove a session todo

Human-in-the-loop

ToolHarness keyDefaultDescription
ask_useronAsk a short clarifying question and wait for a reply (structured follow-up)
delegate_taskonRun a bounded sub-task with a reduced tool subset (delegation platform)

Code execution

ToolHarness keyDefaultDescription
execute_pythoncodeonRun Python in a sandboxed helper
execute_javascriptcodeonRun JavaScript in a sandboxed helper
code_task_sessioncodeonStructured multi-step code work inside an isolated session (files, tools, history)

Knowledge and journal

ToolHarness keyDefaultDescription
update_knowledgeonAdd, update, or remove knowledge.md sections
read_journaljournalonRead recent private journal entries
write_journaljournalonAppend a private journal entry

Voice

ToolHarness keyDefaultDescription
speakvoiceonSend a TTS voice note to the active chat
get_tts_voicevoiceonCurrent Edge-TTS voice ID
set_tts_voicevoiceonSet Edge-TTS voice for this process
list_tts_voicesvoiceonList available Edge-TTS voices (filterable)

Messaging

ToolHarness keyDefaultDescription
send_dmmessagingonDM on Telegram or Discord (confirmation flow)
send_message_tomessagingonMessage a platform target or resolved person
list_known_contactsmessagingonKnown people and routes from prior interactions

Automations

ToolHarness keyDefaultDescription
create_automationautomationsonCreate a scheduled routine (cron, prompt, optional delivery)
edit_automationautomationsonEdit routine fields
delete_automationautomationsonRemove a routine
list_automationsautomationsonList all routines
toggle_automationautomationsonEnable or disable a routine
run_automation_nowautomationsonTrigger a routine immediately

Reminders

ToolHarness keyDefaultDescription
set_reminderremindersonSchedule a reminder (DB + APScheduler)
list_remindersremindersonList active reminders
cancel_reminderremindersonCancel a scheduled reminder

Browser (optional)

ToolHarness keyDefaultDescription
browser_navigatebrowseroffOpen a URL in the automated browser
browser_clickbrowseroffClick an element (Playwright)
browser_typebrowseroffType into the page
browser_screenshotbrowseroffScreenshot the current page

Remote desktop sessions (optional)

ToolHarness keyDefaultDescription
desktop_session_clickremote_sessionoffClick at screen coordinates
desktop_session_keypressremote_sessionoffSend key presses or shortcuts
desktop_session_open_urlremote_sessionoffOpen a URL inside the remote desktop
desktop_session_statusremote_sessionoffInspect the active session
desktop_session_stopremote_sessionoffStop the active session
desktop_session_typeremote_sessionoffType text into the session
desktop_session_viewremote_sessionoffCapture the current frame

Image generation (optional)

ToolHarness keyDefaultDescription
generate_imageimagegenoffText-to-image (Fal or local SD WebUI-compatible)

IoT / Environment

ToolHarness keyDefaultDescription
get_ha_stateiotonCheck the current state of a Home Assistant entity
set_ha_stateiotonCall a Home Assistant service to change state

Observation

ToolHarness keyDefaultDescription
tail_fileobservationonRead the last N lines of a file (useful for fast log monitoring)
check_file_modifiedobservationonCheck the last modified time and size of a file

Social Broadcast

ToolHarness keyDefaultDescription
post_mastodon_statussocialonPost a status update to a configured Mastodon account
read_mastodon_timelinesocialonRead the latest posts from the Mastodon home timeline
post_zweet_statussocialonPost a zweet (status update/tweet) to an X (Twitter) account

Local RAG / Indexing

ToolHarness keyDefaultDescription
index_textragonIndex a block of text into a local SQLite vector DB using Ollama embeddings
search_collectionragonSemantically search a specific RAG collection for information

Information

ToolHarness keyDefaultDescription
get_current_timeonCurrent local date and time (timezone-aware)
get_weatherweatheronWeather for a location
get_newsnewsonNews headlines by topic
get_system_infosystemonHost and system snapshot

Content

ToolHarness keyDefaultDescription
read_pdfpdfonExtract text from a PDF path
read_redditredditonBrowse a subreddit
read_reddit_postredditonRead a Reddit post thread
read_wikipediawikipediaonWikipedia summary or full article
get_youtube_transcriptyoutubeonTranscript for a YouTube video
search_youtubeyoutubeonSearch YouTube

Discovery

ToolHarness keyDefaultDescription
search_toolsonSearch registered tools by keyword
describe_toolonFull name, description, and JSON Schema for one tool

Agency and flow control

ToolHarness keyDefaultDescription
thinkonPrivate scratchpad thought (not shown to users)
sayonSend a message mid-turn to the active chat
end_turnonEnd the current turn (mood / parting thought optional)
end_wake_sessiononDuring sustained autonomous wake, signal no further rounds after this perceive completes
waitonPause briefly before the next action
observeonFetch recent messages from a channel (where supported)
compact_contextonRequest proactive context compaction
end_wake_session only affects multi-round autonomous wake. end_turn ends a single perceive round.

Enabling and disabling

Each tool category has an enabled flag in configs/default.yaml:
tools:
  shell:
    enabled: true
    deny: ["rm -rf /", "sudo rm", "shutdown"]
    timeout: 30
  browser:
    enabled: false
  voice:
    enabled: true
  imagegen:
    enabled: false
Override per entity with a top-level tools: block in entity YAML.

Runtime discovery

The live registry depends on YAML toggles, installed extras, and any MCP servers attached. The entity can inspect its own capabilities at runtime:
  • search_tools — find tools by keyword
  • describe_tool — get the full JSON Schema for a specific tool

MCP

Attach external tools via Model Context Protocol stdio servers. Their tools register dynamically at startup, prefixed with the server name so they stay distinct from native tools.
mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
Multiple servers and reconnects are supported. See configs/entities/example.yaml for a commented template.

Zapier MCP

Zapier exposes MCP over Streamable HTTP, but Bumblebee only spawns stdio servers today. Bridge with mcp-proxy:
mcp_servers:
  zapier:
    command: mcp-proxy
    args: ["--transport", "streamablehttp", "https://actions.zapier.com/mcp/YOUR_ID/sse"]
    env:
      API_ACCESS_TOKEN: "your_zapier_secret"

Optional extras

Some tools require additional Python packages:
pip install 'bumblebee[voice]'      # Edge-TTS voice notes
pip install 'bumblebee[browser]'    # Playwright browser tools
pip install 'bumblebee[imagegen]'   # fal image generation
pip install 'bumblebee[pdf]'        # PDF reading
pip install 'bumblebee[youtube]'    # YouTube transcripts
pip install 'bumblebee[full]'       # everything

Execution layer

Shell, filesystem, and code tools run via the execution layer. Where they execute depends on your deployment:
  • Local — same machine as Bumblebee
  • Railway — inside the container (RAILWAY_ENVIRONMENT is set)
  • RPC — remote execution host via BUMBLEBEE_EXECUTION_RPC_URL
See Hybrid deployment for details on execution safety and configuration.