Action namespaces

An agent's actions have the same names across its surfaces: a command is /task:run, a tool is task__run, and a route is /_link/task/run. CLI actions are under lnk agent, for example lnk agent task run --agent main --request request.json.

Commands and aliases

The namespace command reference lists declared command actions. The separate alias reference maps familiar spellings to their targets. For example, /new and /clear resolve to /chat:create. The target owns execution; aliases add names without adding handlers or permissions. Root-level /help is a discovery command outside the namespaces.

Grants

The registry controls names, callers, surfaces, bridge and budgets. The proxy proves the calling agent; no request selects another agent, backend, program or credential. Routes without a provider are left out of its grant, and discovery is filtered to it.

Models and conversations

The model API owns inference and model details. Conversation management is in chat; sending is lnk agent chat send. Skills remain in skill, and owner management of tools in lnk agent tool.

Work and files

task owns run, start, list, read, stop, agent and schedule. It is one MCP server over the run and scheduler providers. task__list combines their lists; kind selects run or schedule. A mutation with multiple providers, such as task__stop, requires kind and reaches one. file owns read, find, write, replace and the language server's definition, references and diagnostics.

Web and screens

web owns fetch and search; opening a page stays approval-controlled. The browser keeps open, read, click, type, select, scroll, screenshot and close. The desktop keeps screenshot, click, type, key, scroll and drag. Their providers' confinement and approval rules still hold.

Identity and memory

agent/show returns its name, harness, model and model limits. The instructions option includes its instructions. memory/show returns notes and their sources without host paths; the memory engine's tools retain their names. tool/list describes its granted namespaces, also shown by lnk agent tool list --json.

Messaging

agent/send takes to, text and a conversation thread; tools and commands supply their own thread. With to: "owner", it sends on that thread's configured connection, whose recipient checks still apply. A Link chat holds the message until its next read. Existing teammates use the scheduler's selection, caps and approval checks. task/schedule also takes a thread for its answer. Message text is limited to 16 KiB.

Select a connection

The agent's send tool also accepts connection with to: "owner": choose a connected service such as discord, telegram, slack or signal, or cli. The service resolves its owner's direct chat; credentials and recipient IDs stay outside the model. A message to cli appears in the next active or newly opened CLI chat. An explicit thread still keeps its own pending answers separate.

One scheduled delivery

When a schedule targets a connection, a successful explicit owner send on that connection satisfies its delivery. The turn's final acknowledgement is kept in its chat without sending a second message. A send elsewhere does not satisfy that destination, and the next recurring firing owes a fresh delivery.

Provider checks

Namespace wrappers check each provider's current definition and approval policy, and refuse unlisted arguments. Removing a provider takes effect at the next call; reconnect after a running provider changes. web/fetch and web/search share typed page and result answers with their MCP tools.

CLI and commands

CLI actions read JSON from --request <file> or standard input and print JSON. Empty input means no arguments. Commands take that same JSON after their name. Link Harness and the hub run Link-owned commands through proved routes. Messages from others are not owner commands. Native harness commands use its advertised names and aliases.

Limits

Calls have byte and time budgets. A timeout can leave a mutation's outcome uncertain: inspect its state before retrying. Routes and wrappers never retry a mutation. The internal move-stream command is lnk agent state-send; lnk agent send sends to the owner or a teammate.