{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/simonwillison-net/2026-09-20-llm-keys-ui-0-1/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "This plugin solves a very specific problem.\n\nI've started using [Codex Remote](https://learn.chatgpt.com/docs/remote) to run coding agents on various machines while controlling them from my phone.\n\nSometimes I use those machines to hack on LLM projects, and occasionally that means I need to configure an API key.\n\nI don't like pasting API keys into agent sessions, so I wanted a way to get those keys onto a machine without pasting them into the ChatGPT app directly.\n\nWith this plugin, I can tell Codex to run:\n\n```\nuvx --with llm-keys-ui llm keys-ui --all\n```\n\nThen have it tell me the URL - including local network or Tailscale device IPs - for an interface to save additional API keys.\n\nThen later it can use a command like `llm keys get anthropic` as part of a shell command when it needs to use a key.\n\n![Chat conversation requesting uvx --with llm-keys-ui llm keys-ui --all, with a response listing four server URLs on port 8010 and confirming the server is still running.](https://static.simonwillison.net/static/2026-09-20/IMG_8166.jpeg) ![LLM keys web interface listing anthropic, openai, openrouter, and qwen-dummy as stored keys, with a form containing Key name and New value fields and a Save key button. Existing key values are never displayed.](https://static.simonwillison.net/static/2026-09-20/IMG_8167.jpeg)\n",
  "authors": [],
  "captured_at": "2026-09-20T22:24:23.139071931+00:00",
  "category": "programming",
  "content_html": "<p>This plugin solves a very specific problem.</p>\n<p>I've started using <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://learn.chatgpt.com/docs/remote\">Codex Remote</a> to run coding agents on various machines while controlling them from my phone.</p>\n<p>Sometimes I use those machines to hack on LLM projects, and occasionally that means I need to configure an API key.</p>\n<p>I don't like pasting API keys into agent sessions, so I wanted a way to get those keys onto a machine without pasting them into the ChatGPT app directly.</p>\n<p>With this plugin, I can tell Codex to run:</p>\n<pre><code><span class=\"code-snippet\">uvx --with llm-keys-ui llm keys-ui --all\n</span></code></pre>\n<p>Then have it tell me the URL - including local network or Tailscale device IPs - for an interface to save additional API keys.</p>\n<p>Then later it can use a command like <code>llm keys get anthropic</code> as part of a shell command when it needs to use a key.</p>\n<p><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://static.simonwillison.net/static/2026-09-20/IMG_8166.jpeg\" alt=\"Chat conversation requesting uvx --with llm-keys-ui llm keys-ui --all, with a response listing four server URLs on port 8010 and confirming the server is still running.\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture> <picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://static.simonwillison.net/static/2026-09-20/IMG_8167.jpeg\" alt=\"LLM keys web interface listing anthropic, openai, openrouter, and qwen-dummy as stored keys, with a form containing Key name and New value fields and a Save key button. Existing key values are never displayed.\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></p>\n",
  "content_markdown": "This plugin solves a very specific problem.\n\nI've started using [Codex Remote](https://learn.chatgpt.com/docs/remote) to run coding agents on various machines while controlling them from my phone.\n\nSometimes I use those machines to hack on LLM projects, and occasionally that means I need to configure an API key.\n\nI don't like pasting API keys into agent sessions, so I wanted a way to get those keys onto a machine without pasting them into the ChatGPT app directly.\n\nWith this plugin, I can tell Codex to run:\n\n```\nuvx --with llm-keys-ui llm keys-ui --all\n```\n\nThen have it tell me the URL - including local network or Tailscale device IPs - for an interface to save additional API keys.\n\nThen later it can use a command like `llm keys get anthropic` as part of a shell command when it needs to use a key.\n\n![Chat conversation requesting uvx --with llm-keys-ui llm keys-ui --all, with a response listing four server URLs on port 8010 and confirming the server is still running.](https://static.simonwillison.net/static/2026-09-20/IMG_8166.jpeg) ![LLM keys web interface listing anthropic, openai, openrouter, and qwen-dummy as stored keys, with a form containing Key name and New value fields and a Save key button. Existing key values are never displayed.](https://static.simonwillison.net/static/2026-09-20/IMG_8167.jpeg)\n",
  "dateCreated": "2026-09-20T22:24:23.139071931+00:00",
  "date_created": "2026-09-20T19:22:19+00:00",
  "date_modified": "2026-09-20T19:22:19+00:00",
  "date_published": "2026-09-20T19:22:19+00:00",
  "description": "Release: llm-keys-ui 0.1 This plugin solves a very specific problem. I've started using Codex Remote to run coding agents on various machines while controlling them from my phone. Sometimes I use those machines to hack on LLM projects, and…",
  "external_url": "https://simonwillison.net/2026/Sep/20/llm-keys-ui/",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/simonwillison-net/2026/09/2026-09-20-llm-keys-ui-0-1.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/simonwillison-net/2026/09/2026-09-20-llm-keys-ui-0-1.md"
  },
  "id": "urn:aggr:item:66cf5d9b7495aa40a08f69caab9f202ffa0c6aef",
  "isBasedOn": {
    "@id": "https://simonwillison.net/2026/Sep/20/llm-keys-ui/"
  },
  "mainEntity": {
    "@id": "https://simonwillison.net/2026/Sep/20/llm-keys-ui/",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/simonwillison-net/2026-09-20-llm-keys-ui-0-1/#webpage"
    },
    "dateModified": "2026-09-20T19:22:19+00:00",
    "datePublished": "2026-09-20T19:22:19+00:00",
    "headline": "llm-keys-ui 0.1",
    "timeRequired": "PT1M",
    "url": "https://simonwillison.net/2026/Sep/20/llm-keys-ui/",
    "wordCount": 140
  },
  "name": "Archived snapshot: llm-keys-ui 0.1",
  "preview": null,
  "reading_minutes": 1,
  "replicated_at": null,
  "source": "simonwillison-net",
  "source_name": "Simon Willison's Weblog",
  "summary": "Release: llm-keys-ui 0.1 This plugin solves a very specific problem. I've started using Codex Remote to run coding agents on various machines while controlling them from my phone. Sometimes I use those machines to hack on LLM projects, and occasionally that means I need to configure an API key. I don't like pasting API keys into agent sessions, so I wanted a way to get those keys onto a machine without pasting them into the ChatGPT app directly. With this plugin, I can tell Codex to run: uvx --with llm-keys-ui llm keys-ui --all Then have it tell me the URL - including local network or Tailscale device IPs - for an interface to save additional API keys. Then later it can use a command like llm keys get anthropic as part of a shell command when it needs to use a key. Tags: llm, coding-agents, codex",
  "tags": [
    "codex",
    "coding-agents",
    "llm"
  ],
  "temporalCoverage": "2026-09-20T22:24:23.139071931+00:00",
  "title": "llm-keys-ui 0.1",
  "url": "https://aggr.aymericbeaumet.com/items/simonwillison-net/2026-09-20-llm-keys-ui-0-1/",
  "word_count": 140
}