OpenClaw has a personality, and a firm grip

OpenClaw is the personal AI assistant, with its own personality files and commands you send from your phone. Link installs it, keeps it in a sandbox and up to date, and runs it as your agent's harness.

lnk agent start               # your agent: paste your Anthropic key when it asks
lnk agent use --harness openclaw        # installs it the first time, then starts it
lnk agent connect telegram    # text it from your phone

Run another agent on it

An agent of its own can run on OpenClaw from its start, beside the one you switched.

lnk agent create work --harness openclaw

Use a hosted model

Anthropic, OpenAI and OpenRouter work with your own key. Without --model, it uses Link's default for the provider (Agents).

ANTHROPIC_API_KEY=sk-ant-... lnk agent start

Use a local model

OpenClaw runs local models only through Ollama, with a context window of 32,768 tokens. Ollama's own default, a few thousand tokens, is smaller than OpenClaw's instructions, so Link sets the larger window on both sides. For a model in LM Studio, llama.cpp, vLLM or Jan, use Hermes.

lnk up models
ollama serve
lnk agent start --model qwen3

Keep context when switching

lnk agent use carries your agent's state over ASP: switching away, OpenClaw's conversations, files, skills and memory are kept in your agent's folder; switching to it, what happened elsewhere reaches it as its own files hold it.

Its memory, exported

Its workspace's MEMORY.md and USER.md go along at each switch away, kept in your agent's folder as OpenClaw left them, and reach every other harness your agent runs on after.

What others remember

At each start, what your agent remembers elsewhere, Link's notes and what Hermes remembered, is a block of Link's in the workspace's MEMORY.md, each under its source; the rest of the file is OpenClaw's own, and only that is exported.

Each chat's thread

Each chat Link's bridge carries is the thread its session key names (telegram:42), on Telegram, Slack, Discord and Signal.

Who your agent is

Your agent's persona and owner go into a block of the workspace's SOUL.md at each start, and its standing instructions into one of its AGENTS.md, the rest of each file as it was; its skills are one of OpenClaw's extra skills folders.

Switching away

What those two files hold besides, unless it's still OpenClaw's template, and the workspace's skills come into your agent's folder wherever it has none.

Its state, over ASP

Asked over ASP, as a switch asks, OpenClaw gives its conversations as openclaw acp replays them, and gives and takes its SOUL.md, AGENTS.md, skills and memory. It takes no conversation from elsewhere: it keeps them behind its gateway, which takes none from outside its own runs, and says so. It also gives the MCP servers you added to its settings, but not those Link added, so a switch names each one the next harness won't use.

Clean up an old OpenClaw install

An OpenClaw installed before Link, or run outside its sandbox, leaves files and a service of its own outside its home, which Security lists. show finds them, and remove deletes them with its home. Then start installs a fresh OpenClaw.

lnk agent harness show --harness openclaw
lnk agent harness delete --harness openclaw
lnk agent start

How it runs

lnk agent start installs the OpenClaw release Link pins, with its own Node, in ~/Link/Agents/<agent>/Harnesses/openclaw, and runs its gateway there, in the sandbox, with openclaw acp beside it behind lnk-openclaw serve, its endpoint. Security lists what it installs and the ports it uses.

Its gateway first

lnk-openclaw serve starts openclaw acp only once the gateway listens on its port, waiting as long as the gateway may take to answer, since openclaw acp hangs up at once on a gateway not yet up. A gateway already listening there is used, never started a second time.

Your connections

Link's bridge carries your connections, Telegram, Slack, Discord and Signal, over ACP to openclaw acp, with Link's key for this start as its key, each chat a session of its own on its default agent. OpenClaw holds no bot's credential, and lnk agent chat send reaches it.

Its scheduled jobs

Link's scheduler runs them: each reaches OpenClaw as a message from the schedule, and its answer goes to the chat the schedule names.

Its memory and your files

Its memory, MEMORY.md, USER.md and memory/, stays in its workspace, in its home. Your files are in the agent's Home.

OpenAI on a Mac

OpenClaw asks for more than Link's defaults in one case: OpenAI on a Mac needs no sandbox. There OpenClaw runs Codex's runtime, which runs ps, a setuid program no sandbox on macOS runs, so OpenClaw asks to run unsandboxed and every start warns while it does. On Linux it runs sandboxed.

Files it keeps

What Link writes in the harness's home for it, beside OpenClaw's own files, each in <harness home>.

.openclaw/.lnk-tools.json

The MCP servers Link added to OpenClaw's settings, one per tool, so it removes only its own.

.openclaw/.lnk-providers.json

The model providers Link set in OpenClaw's settings, so when the model changes it removes only those, and a configure that changes nothing runs no removal at all.

.lnk/openclaw-doctored

The release openclaw doctor --fix last succeeded for, so it runs once for each release, and at each start until it succeeds.

More about it

Troubleshooting says what to do when it fails, Decisions why it works this way and Security what it may do. Compare Harnesses sets it beside the other harnesses, and the other lnk agent commands are on the Agents page.

Work on its code

How to build and test lnk-openclaw, and how it's released and licensed.

Build and test

It depends on link-plugin from the core, beside it in the public workspace.

cargo fmt --check
cargo clippy --all-targets --locked -- -D warnings
cargo test --locked

Release

Link's release builds lnk-openclaw from this folder and ships it as one of Link's plugins, at the core's version, signed with Link's key.

License

MIT or Apache-2.0, at your option.

Docs

  • Security: What lnk-openclaw installs and runs, beyond what Link's sandbox guarantees every harness (Link's Agents Security page)
  • Decisions: Why lnk-openclaw runs OpenClaw the way it does
  • Troubleshooting: What to do when OpenClaw doesn't find its model, loses a turn or keeps starting outside Link (OpenClaw)