EmptyOS / docs Sign in

The empty skill

Read and install the agent skill that ships with the client.

Read the EmptyOS Computer skill here. You can read that file without installing the client or signing in. The public copy is built from the same source that ships in @emptyos/client.

The skill tells a workstation agent how to install empty, connect, and use the client. ~/EMPTY.md on the computer describes work done on the computer itself. Install the workstation skill into the agent runtime's skills directory so later sessions still have it.

With the client installed, run empty --skill and read its complete output before working on a computer. It prints the skill bundled with that client version. It runs offline, needs no skill installation or computer connection, and leaves client state unchanged. It accepts no arguments and prints Markdown, not JSON.

empty --skill

For delegated work, have the worker read empty --skill first and include the skill's requirements in the task. CLI help lists commands; it does not replace the skill.

$ empty skill install
Installed skill to /Users/you/.agents/skills/emptyos-computer

# another runtime
$ empty skill install --dir ~/.claude/skills
Installed skill to /Users/you/.claude/skills/emptyos-computer

The default directory is ~/.agents/skills. If the runtime reads somewhere else or the default is not writable, pass a writable skills directory supported by that runtime with empty skill install --dir <writable-skills-directory>. For example, use ~/.claude/skills for Claude Code or ~/.codex/skills for Codex. The installer does not change permissions on runtime-managed directories.

The command writes emptyos-computer/SKILL.md and emptyos-computer/agents/openai.yaml. It replaces any earlier copy. With --json, the command reports {"installed": "<path>"}.

The client records each install. After you upgrade the client, its next command other than empty --skill refreshes every recorded copy that still exists and prints a line on stderr naming the updated skill. Read that SKILL.md again. A copy you delete stays deleted.

If another skill update is running, automatic refresh retries on a later command. An explicit install waits briefly, then reports a busy error if the other update is still running.

Once a day, the client asks npm for the latest @emptyos/client version. While a newer one exists, each command other than empty --skill ends with a stderr notice such as Client 0.1.15 is out of date (latest 0.1.16); run `npm install -g @emptyos/client@latest` . Neither notice changes --json output. Network failures stay silent. Set EMPTYOS_NO_UPDATE_CHECK=1 to turn the check off.

After installation, read SKILL.md in the printed directory during the current session. Do not assume the running agent reloads its skill catalog. Use this installed copy when working with that client version.

If Node and npm are available but you have not installed the global empty command, run the installer with npx:

$ npx @emptyos/client skill install

npx runs the installer from @emptyos/client. That command does not install a global empty command. To install the client, follow Getting started. To continue without a global empty, use npx @emptyos/client in place of empty. Installing the npm package alone does not change an agent's skills directory.