{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/ampcode-com/2026-09-17-one-runner-is-now-enough/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "A [runner](https://ampcode.com/docs/cli/runners) can now serve many directories, not just the one it was started in. You can point it at specific projects and directories or let it find your Git repositories.\n\n![The new thread composer on ampcode.com with the runner mac-mini selected and a picker listing its projects and folders](https://static.ampcode.com/news/one-runner-is-now-enough-picker-dark.png)\n\nStart a runner and tell it which directories to serve with `--dir`. Repeat the flag for each one:\n\n```shell-session\n$ amp --no-tui --runner-id mac-mini --dir ~/code/amp --dir ~/code/sandcastle\n```\n\nOr start it in the directory that holds your checkouts and let it find them:\n\n```shell-session\n$ cd ~/code\n$ amp --no-tui --runner-id mac-mini --discover-dirs\n```\n\n`--discover-dirs` serves every Git checkout up to two levels beneath the current directory and picks up new ones as you clone them.\n\nCheckouts somewhere else, or deeper than two levels? Give `--discover-dirs` a path, repeat it for more, and set `--discover-depth` to look further down:\n\n```shell-session\n$ amp --no-tui --discover-dirs=~/work --discover-dirs=~/code --discover-depth 4\n```\n\nAdd or remove directories while the runner is running, without restarting it:\n\n```shell-session\n$ amp runner dirs add ~/code/new-repo\n$ amp runner dirs list\n$ amp runner dirs remove ~/code/dotfiles\n```\n\nThe runner remembers the directories you add this way and serves them again the next time you start it from the same directory.\n\n## Oh, They Can Update Themselves Too\n\nRunners now update themselves too. If you leave an `amp --no-tui` runner running, it keeps checking for new releases about once an hour and installs them. Once no thread is running on it, it restarts into the new version, at most once every 12 hours. It keeps its runner ID, its directories, and the rest of its flags.\n\nTurn it off with `amp.runner.autoUpdate.enabled: false` in your settings.\n\nRead more about [serving multiple directories](https://ampcode.com/docs/cli/runners#serve-multiple-directories) and [runner updates](https://ampcode.com/docs/cli/runners#keep-a-runner-updated) in the runner docs.\n",
  "authors": [],
  "captured_at": "2026-10-03T23:09:50.514863041+00:00",
  "category": "programming",
  "content_html": "<p>A <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ampcode.com/docs/cli/runners\">runner</a> can now serve many directories, not just the one it was started in. You can point it at specific projects and directories or let it find your Git repositories.</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://static.ampcode.com/news/one-runner-is-now-enough-picker-dark.png\" alt=\"The new thread composer on ampcode.com with the runner mac-mini selected and a picker listing its projects and folders\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n<p>Start a runner and tell it which directories to serve with <code>--dir</code>. Repeat the flag for each one:</p>\n<pre><code class=\"language-shell-session\"><span class=\"code-snippet\" data-language=\"Shell-session\">$ amp --no-tui --runner-id mac-mini --dir ~/code/amp --dir ~/code/sandcastle\n</span></code></pre>\n<p>Or start it in the directory that holds your checkouts and let it find them:</p>\n<pre><code class=\"language-shell-session\"><span class=\"code-snippet\" data-language=\"Shell-session\">$ cd ~/code\n$ amp --no-tui --runner-id mac-mini --discover-dirs\n</span></code></pre>\n<p><code>--discover-dirs</code> serves every Git checkout up to two levels beneath the current directory and picks up new ones as you clone them.</p>\n<p>Checkouts somewhere else, or deeper than two levels? Give <code>--discover-dirs</code> a path, repeat it for more, and set <code>--discover-depth</code> to look further down:</p>\n<pre><code class=\"language-shell-session\"><span class=\"code-snippet\" data-language=\"Shell-session\">$ amp --no-tui --discover-dirs=~/work --discover-dirs=~/code --discover-depth 4\n</span></code></pre>\n<p>Add or remove directories while the runner is running, without restarting it:</p>\n<pre><code class=\"language-shell-session\"><span class=\"code-snippet\" data-language=\"Shell-session\">$ amp runner dirs add ~/code/new-repo\n$ amp runner dirs list\n$ amp runner dirs remove ~/code/dotfiles\n</span></code></pre>\n<p>The runner remembers the directories you add this way and serves them again the next time you start it from the same directory.</p>\n<h2>Oh, They Can Update Themselves Too</h2>\n<p>Runners now update themselves too. If you leave an <code>amp --no-tui</code> runner running, it keeps checking for new releases about once an hour and installs them. Once no thread is running on it, it restarts into the new version, at most once every 12 hours. It keeps its runner ID, its directories, and the rest of its flags.</p>\n<p>Turn it off with <code>amp.runner.autoUpdate.enabled: false</code> in your settings.</p>\n<p>Read more about <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ampcode.com/docs/cli/runners#serve-multiple-directories\">serving multiple directories</a> and <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://ampcode.com/docs/cli/runners#keep-a-runner-updated\">runner updates</a> in the runner docs.</p>\n",
  "content_markdown": "A [runner](https://ampcode.com/docs/cli/runners) can now serve many directories, not just the one it was started in. You can point it at specific projects and directories or let it find your Git repositories.\n\n![The new thread composer on ampcode.com with the runner mac-mini selected and a picker listing its projects and folders](https://static.ampcode.com/news/one-runner-is-now-enough-picker-dark.png)\n\nStart a runner and tell it which directories to serve with `--dir`. Repeat the flag for each one:\n\n```shell-session\n$ amp --no-tui --runner-id mac-mini --dir ~/code/amp --dir ~/code/sandcastle\n```\n\nOr start it in the directory that holds your checkouts and let it find them:\n\n```shell-session\n$ cd ~/code\n$ amp --no-tui --runner-id mac-mini --discover-dirs\n```\n\n`--discover-dirs` serves every Git checkout up to two levels beneath the current directory and picks up new ones as you clone them.\n\nCheckouts somewhere else, or deeper than two levels? Give `--discover-dirs` a path, repeat it for more, and set `--discover-depth` to look further down:\n\n```shell-session\n$ amp --no-tui --discover-dirs=~/work --discover-dirs=~/code --discover-depth 4\n```\n\nAdd or remove directories while the runner is running, without restarting it:\n\n```shell-session\n$ amp runner dirs add ~/code/new-repo\n$ amp runner dirs list\n$ amp runner dirs remove ~/code/dotfiles\n```\n\nThe runner remembers the directories you add this way and serves them again the next time you start it from the same directory.\n\n## Oh, They Can Update Themselves Too\n\nRunners now update themselves too. If you leave an `amp --no-tui` runner running, it keeps checking for new releases about once an hour and installs them. Once no thread is running on it, it restarts into the new version, at most once every 12 hours. It keeps its runner ID, its directories, and the rest of its flags.\n\nTurn it off with `amp.runner.autoUpdate.enabled: false` in your settings.\n\nRead more about [serving multiple directories](https://ampcode.com/docs/cli/runners#serve-multiple-directories) and [runner updates](https://ampcode.com/docs/cli/runners#keep-a-runner-updated) in the runner docs.\n",
  "dateCreated": "2026-10-03T23:09:50.514863041+00:00",
  "date_created": "2026-09-17T00:00:00+00:00",
  "date_modified": "2026-09-17T00:00:00+00:00",
  "date_published": "2026-09-17T00:00:00+00:00",
  "description": "A runner can now serve many directories, not just the one it was started in. You can point it at specific projects and directories or let it find your Git repositories. Start a runner and tell it which directories to serve with --dir.…",
  "external_url": "https://ampcode.com/news/one-runner-is-now-enough",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/ampcode-com/2026/09/2026-09-17-one-runner-is-now-enough.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/ampcode-com/2026/09/2026-09-17-one-runner-is-now-enough.md"
  },
  "id": "urn:aggr:item:12a56344fc8c5727c833ddce4f1235be9b9f3c9b",
  "isBasedOn": {
    "@id": "https://ampcode.com/news/one-runner-is-now-enough"
  },
  "mainEntity": {
    "@id": "https://ampcode.com/news/one-runner-is-now-enough",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/ampcode-com/2026-09-17-one-runner-is-now-enough/#webpage"
    },
    "dateModified": "2026-09-17T00:00:00+00:00",
    "datePublished": "2026-09-17T00:00:00+00:00",
    "headline": "One Runner Is Now Enough",
    "timeRequired": "PT2M",
    "url": "https://ampcode.com/news/one-runner-is-now-enough",
    "wordCount": 287
  },
  "name": "Archived snapshot: One Runner Is Now Enough",
  "preview": null,
  "reading_minutes": 2,
  "replicated_at": null,
  "source": "ampcode-com",
  "source_name": "Amp News",
  "summary": "A runner can now serve many directories, not just the one it was started in. You can point it at specific projects and directories or let it find your Git repositories. Start a runner and tell it which directories to serve with --dir. Repeat the flag for each one: $ amp --no-tui --runner-id mac-mini --dir ~/code/amp --dir ~/code/sandcastle Or start it in the directory that holds your checkouts and let it find them: $ cd ~/code $ amp --no-tui --runner-id mac-mini --discover-dirs --discover-dirs serves every Git checkout up to two levels beneath the current directory and picks up new ones as you clone them. Checkouts somewhere else, or deeper than two levels? Give --discover-dirs a path, repeat it for more, and set --discover-depth to look further down: $ amp --no-tui --discover-dirs=~/work --discover-dirs=~/code --discover-depth 4 Add or remove directories while the runner is running, without restarting it: $ amp runner dirs add ~/code/new-repo $ amp runner dirs list $ amp runner dirs remove ~/code/dotfiles The runner remembers the directories you add this way and serves them again the next time you start it from the same directory. Oh, They Can Update Themselves Too Runners now update themselves too. If you leave an amp --no-tui runner running, it keeps checking for new releases about once an hour and installs them. Once no thread is running on it, it restarts into the new version, at most once every 12 hours. It keeps its runner ID, its directories, and the rest of its flags. Turn it off with amp.runner.autoUpdate.enabled: false in your settings. Read more about serving multiple directories and runner updates in the runner docs.",
  "tags": [],
  "temporalCoverage": "2026-10-03T23:09:50.514863041+00:00",
  "title": "One Runner Is Now Enough",
  "url": "https://aggr.aymericbeaumet.com/items/ampcode-com/2026-09-17-one-runner-is-now-enough/",
  "word_count": 287
}