Tools

Tools are the atomic capabilities the Node exposes to the local Qwen model. They are invoked only when the user's intent matches; OCC never calls a web tool on its own initiative, and it never reaches outside the workspace folder for file operations.

For composite multi-step capabilities that orchestrate several tools together, see Skills.

Web tools (gated)

Web tools are stripped from the tool list unless the user explicitly invokes the web — OCC's design rule is that knowledge should come from community-approved packs, not from arbitrary web pages. The web is reachable, but only on demand.

web_search

Search the web (DuckDuckGo backend) for current information. Triggered when the user explicitly says "search the web", "look online", "browse the web", "latest news", or similar phrases.

fetch_url

Fetch and read a specific web page. Triggered by a URL in the message or phrases like "open this page", "read this URL". Two-stage extraction: high-quality main-content extraction first, with a crude HTML-strip fallback when the page returns nothing usable (paywalls, JS-heavy SPAs).

explicit intent only

Asking "what is the Inca road system?" runs deliberation against the knowledge packs — no web. Asking "search the web for recent news on the Inca road system" enables web_search. The trigger is in the phrasing, not in the topic.

File workspace tools

OCC has a workspace/ folder inside the OCC directory. The local model can read and write files there, sandboxed — file operations cannot escape the directory. Useful for letting OCC produce files on your behalf or operate on files you placed there manually.

list_files

List files and directories in the workspace.

read_file

Read a file from the workspace.

write_file

Write or create a file in the workspace.

run_code

Execute a Python snippet with the workspace as working directory. 30-second timeout. Output (stdout + stderr) is returned to the model.

Document and audio readers (upload folder)

Files attached via the paperclip icon land in the upload/ folder. The model reads them with these tools:

read_pdf

Extract text from a PDF file. Uses PyMuPDF. For scanned pages with no extractable text, returns a clear "possibly scanned" message rather than empty output.

read_docx

Extract text from a Microsoft Word .docx file (paragraphs and tables).

read_xlsx

Extract cells from a Microsoft Excel .xlsx file. All sheets, rows returned as tab-separated values.

transcribe_audio

Transcribe an audio file (mp3, wav, m4a, ogg, flac) using OpenAI Whisper running locally. Returns the detected language, the duration, and the transcript.

binary upload behavior

When you attach a binary file, OCC automatically stays in chat mode for the rest of the conversation so these atomic tools remain reachable for follow-up questions. The matching tool is called as soon as you reference the file.

Pack catalog tools

These let the user browse and download knowledge packs from chat, without leaving the conversation.

list_packs

Browse the broker's catalog tree at a given path. Returns one level of children, with manifest summaries when the children are packs, and a count of packs reachable underneath when they are categories. Empty prefix lists the top level.

Trigger phrases: "what packs do you have", "browse the catalog", "show me what's under marketing".

download_pack

Download a pack from the broker into the local expert-packs/ folder.

safe by default

A downloaded pack is saved DISABLED so it does not interfere with current retrieval. The user activates it from Settings → Knowledge Source. Activation triggers the local search index build automatically.

If a pack of the same path already exists locally, the tool first returns a conflict message and waits for the user to confirm before overwriting — a two-step safety to prevent silently wiping a pack the user may have edited with Forge.

Tool indicators in the UI

When a tool runs as part of an answer, a small monospace tag appears next to the routing badge — WEB, URL, PDF, VERIFY, CATALOG, and so on — so you can see at a glance which tools the model actually used.

How tools combine with deliberation

Tools live in chat mode: the classifier routes single-action requests (read a file, fetch a URL, run code) to a direct tool call, with no retrieval and no multi-agent pipeline. Deliberate mode runs the Expert / Critic / Synthesizer pipeline against the curated knowledge packs and does not use web tools — that is what gives OCC its provenance guarantee.

When a request spans multiple tools or several reasoning steps (e.g. "do deep research on X", "fact-check this claim", "summarize all my uploaded files"), the classifier routes it to a Skill instead — a higher level orchestration over the atomic tools described here.


See also:

  • Skills — composite multi-step capabilities built on these tools.
  • The Node — how the chat UI exposes tool indicators, the web gate, and the upload paperclip.
  • How OCC works — where tools sit in the overall pipeline.

Something missing or incorrect? Open an issue on GitHub