The Archive · Android reference

Tool Forge

New tools for TALOS for Android, built from a manifest of steps rather than code: what they can do, the manifest, and how it is checked.

Reference for TALOS for Android 0.1.40 generated from the source of the release · released

A forged tool is a flow of steps over capabilities TALOS already has, described in a .talostool manifest (talos.local-tool.v1) — never code the model writes. Import one on the Tool Forge screen, or ask the assistant to make one with tool_create. Either way it is checked before it installs, and it stays off until you turn it on. Each version is kept, so you can roll back; rolling back turns the tool off again.

Once on, it is a tool like the others, named dynamic:<id>: it needs the powers its steps need, its marks are worked out from them, and one whose steps reach R4 always asks. It passes through the same consent.

What a step can call:

CapabilityWhat it doesPowerRisk
tasks.list Read local TALOS tasks.input up to 1 KiB Read R1
tasks.create Create a local TALOS task.input up to 16 KiB Write R2
tasks.setStatus Change local task status.input up to 1 KiB Write R2
notes.list Read local TALOS notes.input up to 1 KiB Read R1
notes.create Create a local TALOS note.input up to 32 KiB Write R2
notes.update Update a local TALOS note.input up to 32 KiB Write R2
memory.create Create durable TALOS memory.input up to 32 KiB Write R3
schema stringrequired
Always talos.local-tool.v1. Valuestalos.local-tool.v1
id stringrequired
The tool’s permanent id: 3–64 characters, lowercase letters, digits, ., _ and -. The tool is named dynamic:<id>.
version numberrequired
A positive integer; each new version keeps the previous ones, so you can roll back.
title stringrequired
The name shown on the Tool Forge screen and on the consent card (1–120 characters).
description stringrequired
What the tool does, for you and for the model (1–1000 characters).
createdAt stringrequired
When this version was written (ISO 8601).
parentVersion numberrequired
The version this one replaces, or null for the first.
execution stringrequired
Always declarative-flow: a forged tool is a flow of steps, never code. Valuesdeclarative-flow
installScope stringrequired
Always device: the tool lives on this phone. Valuesdevice
network objectrequired
Whether the tool may reach the network (forbidden) or only the exact hosts listed (allowlist). No capability of this release uses the network.
credentialRequirements array of objectrequired
Keys or accounts the tool needs, each with its purpose and the hosts it may reach. A tool whose access is missing cannot run.
modelDefaults object
What the model steps of the flow need: structured output, context, privacy (local only, local preferred, or remote allowed), reasoning effort.
inputSchema object
The tool’s parameters, as a JSON Schema subset; the model is offered exactly these.
outputSchema object
The shape of the result, as a JSON Schema subset.
flow objectrequired
The steps: an entry node, a bound on transitions, and the nodes.
state object
Data the tool keeps between runs, with its own fields and a size limit.
triggers array of object
When the tool would run by itself (manual, schedule, app-resume, task-changed). Accepted in the manifest; this release does not start a tool on its own.
ui object
A summary card for the result: its title and the values it shows.

The flow starts at its entry node and follows next (or then and else) from node to node. It may not loop back on itself; repetition is a bounded foreach.

set
Writes a value into a variable. Fieldstargetvaluenext
capability
Calls one capability of TALOS, with its input; may retry (1–3 attempts) and name the capability that undoes it. Fieldscapabilityinputtargetretrycompensationnext
llm
Asks the model to classify, extract, summarize, generate or rank, into a variable; with structured output it needs an output schema. FieldsopinputtargetrequirementsoutputSchemanext
if
Goes to one node or another, by a comparison (eq, neq, truthy, exists, contains, gt, gte, lt, lte). Fieldsconditionthenelse
foreach
Repeats a short body of steps for each item of a list, up to a bound you set. FieldssourceitemVarindexVarmaxItemsbodynext
return
Ends the run with a value. Fieldsvalue
fail
Ends the run with an error code and a message. Fieldscodemessage
Nodes in a flow
64
Transitions in a run
256
Items of a loop
100
Steps in the body of a loop
16
Size of a manifest
64 KiB
Size of the input
64 KiB
Result of one capability
256 KiB
Output of a run
256 KiB

A manifest with an error does not install; the import lists every issue, with the field it concerns.

CodeMeaning
FORGE_RETRY_BOUNDS Retry attempts are not between 1 and 3.
FORGE_RETRY_BACKOFF The wait between attempts is not between 0 and 5000 ms.
FORGE_CAPABILITY_UNKNOWN A step names a capability TALOS does not have.
FORGE_NETWORK_NOT_DECLARED A step uses a capability that needs the network, and its host is not listed.
FORGE_INVALID_COMPENSATION A step that cannot be undone claims a compensation.
FORGE_COMPENSATION_UNKNOWN The compensation names an unknown capability.
FORGE_COMPENSATION_MISMATCH The compensation does not undo the capability it is attached to.
FORGE_LLM_STRUCTURED_OUTPUT_MISSING_SCHEMA A model step asks for structured output without an output schema.
FORGE_TRANSITION_BOUNDS The bound on transitions is out of range.
FORGE_NODE_BOUNDS The flow has no nodes, or too many.
FORGE_NODE_ID A node has an invalid id.
FORGE_NODE_DUPLICATE Two nodes share an id.
FORGE_FOREACH_BOUNDS A loop’s bound on items is out of range.
FORGE_INLINE_BOUNDS A loop’s body has too many steps.
FORGE_ENTRY_MISSING The entry node does not exist.
FORGE_EDGE_MISSING A node leads to a node that does not exist.
FORGE_CYCLE The flow loops back on itself; cycles and recursion are not allowed.
FORGE_UNREACHABLE_NODEwarning A node cannot be reached from the entry (a warning: the tool still installs).
FORGE_MANIFEST_STRUCTURE A field is missing, unknown, or of the wrong type.
FORGE_MANIFEST_TOO_LARGE The manifest is larger than the limit.
FORGE_ID The id is not a 3–64 character lowercase slug.
FORGE_VERSION The version is not a positive integer.
FORGE_TITLE The title is empty or longer than 120 characters.
FORGE_DESCRIPTION The description is empty or longer than 1000 characters.
FORGE_NETWORK_CONTRADICTION The network is forbidden, yet hosts are listed.
FORGE_DOMAIN_INVALID A listed host is not an exact DNS name.
FORGE_CREDENTIAL_ID A credential has an invalid id.
FORGE_CREDENTIAL_SCOPE A credential may reach a host the network list does not allow.
FORGE_SECRET_FOUND The manifest contains what looks like a secret: keys belong in credentials, never in the file.
FORGE_OUTBOUND_FORBIDDEN A reachable step needs the network, and the network is forbidden.
FORGE_REF_UNSAFE A reference to a value is not a safe path.
FORGE_TARGET_UNSAFE A step writes to a variable name that is not allowed.
FORGE_VAR_UNSAFE A loop variable has a name that is not allowed.

Type to search the guides.