{
  "id": 13162526,
  "title": "Built for the agent at the keyboard",
  "url": "https://urgent.news/2026/10/09/built-for-the-agent-at-the-keyboard",
  "topic": "ai",
  "section": "AI",
  "published": "2026-10-09T17:05:49.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/vzn-vx/built-for-the-agent-at-the-keyboard-17j8"
  },
  "original_language": "en",
  "account": "The vx coding agent does not rely on progress bars, but instead reads stdout and parses it to determine the next course of action. When an answer is embedded in a human-facing frame, vx attempts to guess the appropriate response. The agent outputs a single JSON document upon completion, with the frame and task output directed to stderr, allowing for easy parsing. For example, running \"vx run build --all --format json\" generates a JSON document containing information such as the run ID, status, total and saved time, and details of each task, including its status, exit code, duration, hash, and stored duration. The savedMs value indicates the time saved by the cache.\n\nvx provides various commands for interacting with its output, such as \"vx show\", \"vx info\", \"vx why\", \"vx last\", and \"vx cache prune\", all of which utilize the same \"--format json\" option. Each command has a corresponding JSON Schema defined in the package at node_modules/@vzn/vx/schemas/ to ensure consistent output structure. Changing a field would constitute a schema change, not a surprise.\n\nEvery JSON document generated by vx adheres to a schema, enabling proper parsing and validation. When a task fails, vx captures both the output printed to stdout and the files blamed by the failure, saving this information for easier analysis. To retrieve failed runs, one can use \"vx last --failed --format json\" along with the \"jq\" command to extract specific task details, such as status, exit code, output, and file locations.\n\nvx maintains a history of the 50 most recent failed runs in a SQLite file named cache.db. This API can be directly queried using SQLite commands, providing information about the project, task, status, and duration of each run. The vx GitHub repository (github.com/vznjs/vx) contains additional documentation, including a markdown-laden llms.txt file and a comprehensive llms-full.txt file that indexes all documentation pages and the entire site. vx also includes an agent skill, SKILL.md, which guides users on how to effectively use the coding agent for running, debugging, and querying tasks within their project.",
  "summary": "A coding agent cannot read a progress bar. It reads stdout, parses it and decides what to do next. If the answer is buried in a frame meant for human eyes, the agent guesses. vx is built so it never has to. The result on stdout, the logs on stderr vx run --format json prints one JSON document when the run ends. The frame and the tasks' output go to stderr, so a pipe sees only the result. $ vx run…",
  "key_points": [
    "vx coding agent parses stdout to determine next actions",
    "JSON output includes run ID, status, and task details",
    "vx maintains history of 50 recent failed runs in SQLite file"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}