local.link

Agents

Your own AI, running on your computer. Run an AI agent in the background and in a sandbox, and text it from your phone. It runs Link harness to start, Link's own small one, or OpenClaw or Hermes Agent, and you can switch without losing your settings, files or channels.

Needs: macOS, or Linux x86-64 with bubblewrap. A model on your computer is free; a hosted one needs an Anthropic, OpenAI or OpenRouter key, and the provider bills you.

lnk up agents                 # add `models` for a model on your computer
lnk agent start               # pick a model, then it runs in the background
lnk agent connect telegram    # or slack, discord, whatsapp, signal
lnk agent status              # running and answering?

Start your agent

lnk agent start
lnk agent start --model qwen3    # a model running on your computer

The first time, it asks which model your agent thinks with: one already running on your computer, one it installs for you on an Apple Silicon Mac, or an API key. For a model on your computer, add the models part too (lnk up models). Your agent works in ~/Link/Agents/main/Home unless you choose another folder (--files).

It keeps running in the background, also after a restart. On a Mac it keeps the Mac awake while it runs; --let-sleep doesn't. lnk agent stop stops it.

Text it from your phone

lnk agent connect telegram    # or slack, discord, whatsapp, signal

lnk asks for what it needs and pairs you. From then on your agent answers you, and only you.

lnk agent disconnect slack forgets a channel's tokens. The bot or app stays yours to delete; unlink WhatsApp or Signal on the phone.

See how it's doing

lnk agent status
lnk agent logs -f

status says whether it's running and answering, with its model, files folder, phone and sandbox. logs -f follows what it's doing.

Switch harnesses

lnk agent use            # list them
lnk agent use hermes

Four harnesses: Link harness, the default, which answers you, remembers the thread and calls the tools you give it, such as your agent's memory; OpenClaw; Hermes Agent; and DeepSeek Harness (lnk agent use deepseek). Your model and key, files folder and channels come along. A harness that doesn't speak one of your channels leaves it quiet until you switch back. OpenClaw, Hermes and DeepSeek Harness keep their own memory and conversations; Link harness keeps its conversations in your files folder, where every harness's memory search finds them. Each harness has its own permissions.

Give it memory

lnk agent memory use
lnk agent memory off

Link memory searches your agent's files and its conversations with Link harness, keyless and on your computer: by words, and by meaning once an embedding model is installed (lnk model install qwen3-embedding). Whichever harness runs your agent reaches it as an MCP server, through its proxy, at $LNK_MEMORY. Link harness searches it by itself: ask "what did I say about driving to Albuquerque?" and it finds that conversation.

Run more than one agent

lnk agent new work
lnk agent list
lnk agent -a work connect telegram

Each agent has its own files, harness, settings and channels, and its sandbox keeps it out of the others' folders. With several, -a <name> picks the one a command is about.

Choose what it can reach

lnk agent permissions                   # what's on, and what each opens
lnk agent allow read-home
lnk agent deny read-home
lnk agent allow host api.anthropic.com  # only these hosts, then
lnk agent allow tcp github.com:22       # git over SSH

Your agent reads and writes its own home and your files folder. The rest of your home folder, including your documents, your keys and Local Link's own settings, is out of its sight. It reaches the internet only through Link's filtering proxy, never your computer or your home network.

Anything more is a permission. network and developer-tools are on to start; open, read-home, localhost and lan are off. lan gives it the network as it is, for a NAS or Home Assistant. With a list of hosts, it reaches only those: keep its model's and its channels' on it. A tool that needs your logins runs outside the sandbox as an MCP server you add (lnk sandbox tool add, then lnk agent allow tool), and asks you before each call you didn't allow; OpenClaw and Hermes find it in their own MCP settings.

Check the sandbox

lnk agent check

Plants bait, such as a secret file, a program with a secret, a spare port and on macOS a Keychain item, tries to reach each one from inside the sandbox, and tells you what got through, including the known gaps open on your computer.

See where it went, and stop it

lnk sandbox log                  # every call through its proxy
lnk sandbox pause main-link      # cut one agent's way out
lnk sandbox resume main-link
lnk sandbox stop                 # cut every way out, and stop every agent
lnk sandbox stop --off           # open them again

The log shows when, which agent, where to, whether it was allowed, and the bytes each way, never what it sent. A proxy pauses its agent itself when its calls look like no normal work, and lnk sandbox log shows why.

Move it to a box

lnk agent move aws         # to your box in aws, a new one if you have none
lnk agent move main here   # and back
lnk agent exit home        # on the box, reach the internet from your computer

Its memory, files, settings and channels go with it. With exit home, sites see your home address, and your agent has no internet while your computer is off.

Back up your agent

lnk agent backup
lnk agent restore

backup copies your agent's files to your clouds, with what its harness knows (memory, conversations, skills; never its keys), stopping it meanwhile. restore puts back what the harness knew at that backup; your files stay. For an agent whose machine is gone, lnk agent restore <name> brings the whole agent back from its bucket.

Remove a harness

lnk agent show openclaw
lnk agent remove openclaw

show lists where a harness lives: its home, and anything of it outside that. remove deletes all of it, with its memory and conversations, after asking. Your files and settings stay.

What works

Every command and flag: lnk agent --help.