{"version":"2.1.281","anchor":"self-hosted-runner-server-composed-agent-files-delivered-vi","canonical_anchor":"self-hosted-runner-server-composed-agent-files-delivered-vi","heading":"Self-hosted runner: server-composed agent files delivered via --agents file; system prompts delivered by file","tier":null,"area":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281\/e\/self-hosted-runner-server-composed-agent-files-delivered-vi","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281","markdown":"### Self-hosted runner: server-composed agent files delivered via --agents file; system prompts delivered by file\n\nThe self-hosted runner now checks agent_files, passes agents via --agents , and passes system prompts as files\n\n**What**\n\nThe remote or self-hosted runner is the program that starts Claude Code on a machine you host. It now accepts server-supplied subagent definitions in `agent_files`. A subagent is a helper agent that Claude Code can hand work to. The runner checks these definitions:\n\n- no more than 64 entries\n\n- each name matches `^[a-z][a-z0-9-]{0,63}$`: it starts with a lowercase letter and uses only lowercase letters, digits and hyphens, up to 64 characters\n\n- each file's content is at most 1 MiB\n\n- no two entries share a name\n\nThe runner combines these with the server's `agents` argument. It writes the result to `remote-agents.json`, which only the file's owner can read or write (mode 0600), and starts Claude Code with the `--agents` flag pointing at that file. The system prompt, append-system-prompt and append-subagent-system-prompt values are also written to files and passed as `--<key>-file`. A system prompt is the standing instructions the model receives before your messages.\n\nThe runner also sorts out errors that happen when Claude Code fails to start, such as E2BIG (the arguments were too large). It records the length of the longest argument and the longest environment entry. It now drops environment entries that are malformed or that are variants of names the runner itself controls.\n\n**Why**\n\nLarge agent definitions and prompts now travel in files, not on the command line. This avoids start-up failures when the command line gets too long. When start-up does fail, the records say more about why."}