Tools overview
Consuelo OS tools are the callable capability layer for agents. A tool has a stable name, a typed input shape, a result envelope, and an implementation behind it. Agents use tools when they need to read repo state, write files, inspect GitHub, run validation, search available capabilities, or call an enabled system. The OS portal exposes the tool layer through a small outer surface:get_steeringbootstraps the agent with the current operating rules, stream context, and core tool surface.callexecutes a named tool with a typed input object. Inside the workspace app, this is theworkspace.call({ tool, input, taskSession, timeout })transport.
Mental model
A tool is a callable agent capability. It is the contract an agent invokes by name, such asfs.read, task.start, tools.search, or github.
A script is executable implementation. Many tools wrap Bun or TypeScript scripts under packages/os/scripts, while other tools wrap runtime adapters or connected systems.
A skill is a workflow. Skills tell an agent how to chain tools, maintain context, validate results, and handle handoffs. For example, task lifecycle work uses stream context, task start, file tools, validation tools, push, and PR tools as one workflow.
A manifest describes tool availability. It records the tool names, categories, schemas, runtime bindings, capabilities, and default behavior that the portal can expose.
A capability is an enabled power or connected system. Examples include filesystem access, GitHub review operations, browser automation, Railway logs, Linear, Sentry, or design publishing.
An artifact is a durable output. Artifacts include generated docs pages, reports, traces, reviews, PRs, published files, and other saved evidence created by a tool or workflow.
Approvals and guardrails are human decision points. They define when a tool can mutate state, when an agent should ask for confirmation, and which operations need stronger evidence before proceeding.
How calls flow
The usual flow is:- The agent reads steering through
get_steering. - Steering provides the core tool surface and workflow rules.
- The agent invokes
callwith a tool name and typed input. - The portal validates the input against the manifest.
- The tool facade calls a script, runtime, or connected capability.
- The facade returns a standard envelope with status, data, stderr, duration, trace, and API version.
- The skill workflow decides the next action from that result.
Core manifest and full manifest
Consuelo OS keeps separate manifests for default visibility and total availability. The core manifest is the default surface for normal agent operation. It contains the tools that should be visible in steering by default: common filesystem, stream, task, context, Git, GitHub, review, verification, and discovery tools. It can exclude heavier or specialized connected systems such as browser, design, Railway, Linear, or Sentry while still leaving them available elsewhere. The full manifest is the generated catalog of active OS tools. It is the broader machine-readable inventory used when installing, validating, and searching available tools. Core-vs-full is a visibility and steering distinction, not a statement that only core tools exist. The machine-readable JSON manifests live underpackages/os/manifests. tool.manifest.json is the full generated catalog. core.manifest.json is the default core subset. manifest.config.json defines the input sources and the selection rules that generate those outputs.
The human-readable TOOLS.md is generated from the full manifest. It is a reference document for people and agents that need examples, signatures, categories, and usage notes. The JSON manifests remain the runtime source for tool availability and validation.
Tool discovery
Usetools.search when the needed capability is unclear, outside the core surface, or easier to find by intent than by exact name.
tools.search searches the generated tool catalog and returns matching tool names with usage context. It is the bridge between the small default steering surface and the larger full manifest.
A practical pattern is:
- Use known core tools directly when the workflow already names them.
- Use
tools.searchto discover a specialized tool. - Use
callwith the discovered tool name and typed input. - Let the relevant skill govern workflow sequencing, validation, and handoff.