Skip to content

chimera.tools

chimera.tools ships ~30 built-in tools plus the primitives for adding your own. Tools are plain Python objects: they expose a JSON-schema for their parameters and an execute(args, env) method.

For tutorial-style guidance, see Add a Custom Tool. This page is the canonical export list.

from chimera import tool, BaseTool, ToolGroup, DEFAULT_TOOLS
from chimera.core.tool import @tool # alternative import path
SymbolModulePurpose
BaseToolchimera.core.toolABC. Define name, description, parameters (JSON Schema), and execute(args, env). Auto-generates Anthropic / OpenAI schemas.
@tool(...)chimera.core.toolDecorator that wraps a plain function and returns a ready-to-use tool.
ToolGroupchimera.core.tool_groupIterable bundle of tools. Use DEFAULT_TOOLS or build your own.
DEFAULT_TOOLSchimera.core.tool_groupThe standard toolset (read, write, edit, bash, search, …). Iterable, so list(DEFAULT_TOOLS) works.
create_default_tools(ops=...)chimera.core.tool_groupFactory variant that lets you swap the underlying Operations (test-time injection).
CancellableToolchimera.core.cancellationMixin for tools that respect CancellationToken.

The following tool modules ship under chimera/tools/. Most expose a single class or factory whose name matches the filename:

ToolModuleNotes
readchimera.tools.readRead file contents.
writechimera.tools.writeCreate / overwrite files.
editchimera.tools.editAnchored substitution.
multi_editchimera.tools.multi_editBatched edits in a single call.
replace_in_filechimera.tools.replace_in_fileSearch-and-replace with regex.
apply_patchchimera.tools.apply_patchApply unified-diff patches.
list_fileschimera.tools.list_filesDirectory listing.
cached_readchimera.tools.cached_readRead with file-tracker caching.
notebook_editchimera.tools.notebook_editEdit Jupyter notebooks.
ToolModule
bashchimera.tools.bash
powershellchimera.tools.powershell
ipythonchimera.tools.ipython
testchimera.tools.test
ToolModule
searchchimera.tools.search
repo_mapchimera.tools.repo_map
import_graphchimera.tools.import_graph
definition_lookupchimera.tools.definition_lookup
codebase_indexchimera.tools.codebase_index
embedding_indexchimera.tools.embedding_index
grounded_searchchimera.tools.grounded_search
tool_searchchimera.tools.tool_search
ToolModule
gitchimera.tools.git
worktree_toolchimera.tools.worktree_tool
rollbackchimera.tools.rollback
ToolModule
web_fetchchimera.tools.web_fetch
web_searchchimera.tools.web_search
browserchimera.tools.browser
image_readchimera.tools.image_read
ToolModule
delegatechimera.tools.delegate
agent_toolchimera.tools.agent_tool
task_toolchimera.tools.task_tool
task_toolschimera.tools.task_tools
plan_modechimera.tools.plan_mode
skill_toolchimera.tools.skill_tool
ask_userchimera.tools.ask_user
send_messagechimera.tools.send_message
dmailchimera.tools.dmail
todochimera.tools.todo
thinkchimera.tools.think
ToolModule
verifychimera.tools.verify
write_guardchimera.tools.write_guard
ToolModule
batchchimera.tools.batch
compiled_function_toolchimera.tools.compiled_function_tool
cron_toolschimera.tools.cron_tools
config_toolchimera.tools.config_tool
strategieschimera.tools.strategies
relative_indentchimera.tools.relative_indent
edit_formatschimera.tools.edit_formats

chimera.types.ToolResult is the return type of every execute() call:

@dataclass
class ToolResult:
output: str
error: str | None = None
@property
def success(self) -> bool: ...