built-in tools

every tool an agent can use out of the box. enable them in tools: in the .agent.md frontmatter.

fs — filesystem

  • fs.read(path) — read a file. returns string + metadata.
  • fs.write(path, content) — create or overwrite. versioned automatically.
  • fs.append(path, content) — append text.
  • fs.glob(pattern) — list files matching glob. /parts/*.part.md.
  • fs.stat(path) — size, mtime, kind.
  • fs.mv(from, to) — move / rename.
  • fs.rm(path) — soft delete into trash.
  • fs.mkdir(path) — make a directory.
  • fs.history(path) — list versions.

llm — language model calls

  • llm.complete(prompt, opts?) — single-shot completion. returns string.
  • llm.chat(messages, opts?) — multi-turn.
  • llm.embed(text) — embedding vector.
  • llm.vision(image_path, prompt) — vision model call.

model defaults to the agent's frontmatter model. override in opts.model.

web — http

  • web.fetch(url, opts?) — http get/post. returns body.
  • web.search(query) — web search via our provider.
  • web.screenshot(url) — headless screenshot, saved to /tmp.

shell — sandboxed subprocess

only on runner seats. shell.exec(cmd) runs inside a disposable container with the drive mounted. network configurable via agent frontmatter.

git

  • git.status() — for projects linked to an external repo
  • git.commit(msg) — commits staged changes
  • git.diff(path) — diff for a path

notify

  • notify.inbox(msg) — drop a message in the users inbox
  • notify.email(to, subject, body) — sends email (team tier only)
  • notify.webhook(name, payload) — fires a configured webhook

cad — parametric geometry

  • cad.create(jsx) — compile declarative jsx to geometry
  • cad.export(part, format) — step / stl / iges
  • cad.sim(part, sim_config) — dispatch a vibeSIM run

pcb

  • pcb.route(net) — auto-route
  • pcb.drc() — design rule check
  • pcb.export(format) — gerber / drill / pos

custom tools

drop a .ts file in /.vibe/tools/ that exports a typed function:

export async function crmSync(input: { leadId: string }) {
  // your impl, runs on runner seat
  return { ok: true }
}

it becomes custom.crmSync in the tool registry automatically.