Skip to content

Built-in Tools

tether.tools.done

Mandatory explicit task completion tool (done).

tether.tools.bash

Sandboxed shell execution tool (bash).

tether.tools.edit

With edit enabled and bash not, a plain shell file write or read runs as edit: echo ok > f, printf 'a\nb' > f and cat > f << 'EOF' ... EOF as edit write f, cat f as edit view f, and >> f as edit append f. edit append <path> adds stdin to the end of a file (created if missing); edit write replaces it. Other shell commands answer unknown command with a pointer to edit.

Workspace-jailed file viewing and stdin patching tool (edit).

tether.tools.web

Zero-config web search (DuckDuckGo Lite + Brave/Tavily/SearXNG env override) and reader.

PrivateAddressError

Bases: PermissionError

Raised when web fetch targets a loopback/private/link-local address (SSRF guard).

HostNotAllowedError

Bases: PermissionError

Raised when web targets a host outside the configured domain allowlist.

host_allowed(host, allow)

Match a host against allowlist entries; IP literals are never allowed by name.

assert_public_url(request) async

Block fetches that resolve to non-global IPs (localhost, RFC1918, cloud metadata).

Runs as an httpx request hook, so every redirect hop is checked too. Opt out with TETHER_WEB_ALLOW_PRIVATE=1.

html_to_markdown(raw_html, max_chars=8000)

Convert raw HTML into compact markdown-friendly text.

search_web_backend(query, max_results=5, web_allow=None) async

Search the web via SearXNG/Brave/Tavily if configured, else DuckDuckGo HTML.

assert_allowed_host(request, allow) async

Refuse hosts outside the allowlist; runs before the SSRF guard on every redirect hop.

tether.tools.mem

Working scratchpad (pin/unpin), FTS5 BM25 RAG (search), and observation recall.

tether.tools.agent

Always-async multi-agent orchestration and SQLite FTS5 BM25 RAG (agent).