Open-source CLI coding agent powered by Pollinations.ai.
Bloom defaults to glm and provides a conversational workflow for exploring, editing, and shipping code.
Warning
Bloom works best in modern UNIX-style terminals (macOS/Linux, WSL, or equivalent shell environments).
curl -LsSf https://raw.githubusercontent.com/Ilm-Alan/bloom-cli/main/scripts/install.sh | bashuv tool install bloom-cli- Interactive chat for code tasks with planning, edits, and command execution in one loop.
- Built-in toolset including
bash,read_file,write_file,search_replace,grep,ls,todo,task, andask_user_question. - Project-aware behavior that picks up repository context and supports project-level instructions.
- Safety controls with tool approvals by default and explicit auto-approve mode.
- Configurable platform via TOML configuration, custom tools, custom agents, custom prompts, and MCP servers.
Bloom includes multiple built-in agent profiles:
default: standard agent requiring approval for tool executions.plan: read-only planning/exploration profile with safe auto-approved tools.accept-edits: auto-approves file edits only (write_file,search_replace).auto-approve: auto-approves all tool executions (use carefully).
Select an agent with:
bloom --agent planBloom supports delegated tasks through the task tool.
It includes an explore subagent for read-only codebase exploration, and supports custom subagents from your agents directory.
-
Install Bloom (see above).
-
Get a Pollinations API key from enter.pollinations.ai.
-
Run setup once:
bloom --setup
-
Start the interactive agent:
bloom
Run Bloom interactively:
bloomUseful patterns:
-
Start with an initial prompt:
bloom "Refactor authentication flow in auth.py" -
Continue the latest session:
bloom --continue
-
Resume a specific session:
bloom --resume abc123
-
Run in a specific directory:
bloom --workdir /path/to/project
Interactive shortcuts include:
Ctrl+J/Shift+Enter: newlineCtrl+G: open external editorCtrl+O: toggle tool outputShift+Tab: toggle auto-approve!<command>: run shell command directly@path/to/file: file path autocomplete
Bloom may ask whether to trust a folder before proceeding when project indicators are present (for example .bloom/, BLOOM.md, or .bloom.md).
Trust choices are saved in ~/.bloom/trusted_folders.toml.
Use --prompt (-p) for non-interactive runs:
bloom --prompt "Summarize all TODOs in this repo"Programmatic mode options:
--max-turns N--max-price DOLLARS--enabled-tools TOOL(repeatable; supports exact, glob, andre:patterns)--output text|json|streaming--model <name>
Built-in slash commands:
/help/config(alias:/model)/reload/clear/log/compact/status/terminal-setup/exit
Bloom reads configuration from:
./.bloom/config.toml(when available and trusted)~/.bloom/config.toml(global fallback)
Default model/provider setup:
active_model = "glm"
[[providers]]
name = "pollinations"
api_base = "https://gen.pollinations.ai/v1"
api_key_env_var = "POLLINATIONS_API_KEY"
[[models]]
name = "glm"
provider = "pollinations"
alias = "glm"
description = "Z.ai GLM-5 - 744B MoE, Long Context Reasoning & Agentic Workflows"API key options:
-
bloom --setup(recommended) -
export in shell:
export POLLINATIONS_API_KEY="your_key_here"
-
set in
~/.bloom/.env:POLLINATIONS_API_KEY=your_key_here
Useful extension paths:
~/.bloom/agents/and.bloom/agents/~/.bloom/skills/and.bloom/skills/~/.bloom/tools/and.bloom/tools/~/.bloom/prompts/and.bloom/prompts/
Override the global Bloom home directory with:
export BLOOM_HOME="/path/to/custom/bloom/home"Bloom includes ACP support through bloom-acp.
See docs/acp-setup.md for JetBrains and Neovim setup instructions.
Apache-2.0. See LICENSE.