惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
T
ThreatConnect
SecWiki News
SecWiki News
F
Future of Privacy Forum
AWS News Blog
AWS News Blog
C
Cisco Blogs
A
Arctic Wolf
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
K
Kaspersky official blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
NISL@THU
NISL@THU
Microsoft Azure Blog
Microsoft Azure Blog
量子位
The Hacker News
The Hacker News
Stack Overflow Blog
Stack Overflow Blog
Security Latest
Security Latest
M
Microsoft Research Blog - Microsoft Research
Google Online Security Blog
Google Online Security Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Troy Hunt's Blog
F
Fox-IT International blog
S
Security @ Cisco Blogs
博客园 - 司徒正美
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Comments on: Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 最新话题
GbyAI
GbyAI
Project Zero
Project Zero
腾讯CDC
T
Tailwind CSS Blog

Hacker News: Show HN

Show HN: OpenBrief – Local-first video downloader/summarizer Artifice Software | Synonym and Antonym Game Show HN: Fungible – A local personal finance app in the terminal Show HN: Unsiloed AI – #1 on OlmOCR-Bench,Beats Reducto, LlamaParse and GPT-5.5 Show HN: AI skills for program / project / delivery managers The Grid: The Largest Machine Ever Built | The Stepchange Show GerbDiff — Local-First Gerber Diff Tool for PCB Engineers Show HN: Built a tool to create brand-consistent images using AI GitHub - ndom91/macos-random-jellyfin-screensaver: Play a random Jellyfin item as your screensaver Bae — the AI companion who actually knows you Open Source Social Media Scheduler — TryPost GCal Sidebar Custom New Tab Dashboard with 50+ Widgets — Start Page HQ iPhone 版“Today” - App Store HypeCheck — Is Your Supplement Legit or Just Hype? GitHub - rjpruitt16/aquifer: API Aqueduct — self-hosted request queue for inbound and outbound rate control GitHub - yamafaktory/hypergraph: Hypergraph is a data structure library to create a directed hypergraph in which a hyperedge can join any number of vertices. Show HN: YourMemory, persistent memory layer with temporal reasoning for agents CloudPostOffice — Simplest way to send and receive messages UUTA — A calm notebook for showing up AI API Pricing Calculator — Compare Costs Across Providers GitHub - scosman/cursed_browser: True AI-Native Browser — a VLM reads the HTML and hallucinates the page. Linear Chess Show HN: Browser-based Glider Sim Next Train GitHub - xfoa/Impatience: A library for instrumentation of event-to-event latency over a network GitHub - bitomule/musts: The validation loop that stops AI coding agents from claiming work is done before it actually is. Feynman - AI research assistant SynapCores — the AI-native database GitHub - erikshelley/complete-family-tree-viewer: A webpage for viewing all of a person's family tree at once GitHub - Noumenon-ai/AutoMaxFix: Controlled AI repair loop. Audit → Reproduce → Patch → Test → Report. Safety boundaries most AI agents skip. GitHub - JosephRedfern/plonk: Python interpreter at your fingertips Open Satchel — A free local-first PDF editor. Show HN: Hackobar – One feed for AI news GitHub - ghostchat-dev/widget: ~10KB chat widget. Zero cookies. Zero tracking. Fully open source. tiltbump X posts as clean Markdown for LLMs Symbol Combos — Cute Symbols, Kaomoji & Aesthetic Emojis to Copy GitHub - SellswordSoftware/justbookmarks: A simple desktop bookmark manager that uses the Netscape Bookmark HTML format so you can keep one browser-independent source of truth. SailWP. WordPress without the weight. Show HN: Widget Cast – Video Widgets for iOS PhoneDiffusion App - App Store Show HN: NanoApps: Run custom homebrew apps on iPod nano 7th generation Breadboard Knockout GitHub - elixir-volt/volt: Elixir-native frontend build tool — dev server, HMR, and production builds for JavaScript, TypeScript, Vue SFCs, and CSS. No Node.js required. Show HN: GuideOS – A radar-first, off-grid navigation kernel for edge robotics State lives on disk, not in chat Show HN: My biggest solo-project: Game engine with its own programming language MarketChacha | Stock Trading Community for Real Market Discussion GitHub - dmitryAQA/playwright-bdr-template Kubernetes, explained — interactive walkthroughs Show HN: Proj – organize your coding projects with categories and one-key CD Show HN: I made a compiler/VM for untrusted scripts Show HN: Stumpy – StumbleUpon Re-Created Show HN: Reward Is Not Reinforcement Until Admitted GitHub - dominikhei/cardamon: Cardamon is a cleanup tool for Prometheus that collects unused metrics from Grafana and Prometheus and generates drop statements for them. GitHub - NavodPeiris/grizzlars: High-performance DataFrame library written in C++ with Python bindings. Peakedin - LinkedIn's finest moments, curated weekly Planetensuche GitHub - cnemri/awesome-gemini-omni: A curated list of awesome Google Gemini Omni prompt guides, interactive platforms, and creative showcases. Show HN: An open-source, interactive AI engineering syllabus (1,100 papers) Show HN: I Built a Debugging Challenge for the AI Coding Age HTML Deployer: 1-Click AI Code To Website Publisher - Chrome 应用商店 GitHub - alkait/WhatsKept: Searchable, agent-queryable WhatsApp history from an iOS backup — a single Go binary. Geomatic | Tiny Volt Show HN: SenseCollect – Web data extraction made simple GitHub - feers77/iasql: A new implementation of SQL for IA purposes, using postgresSQL and Karpathy wiki-llm as inspiration. Kubernetes Study Path — From kubectl to a Production Cluster GitHub - octelium/cordium: Open-source sandbox platform with identity-based secretless infrastructure access for developers and AI agents on Kubernetes Play Doom with friends in your browser. You decide when you receive ForwardPass! (experimental) GitHub - jacksonsolid/Bytery fx.leftium.com GitHub - skorotkiewicz/cadence: $$hi Small marker tracking for source files. GitHub - nikitph/yieldos Show HN: Live AI music sequencing agent SaveNeighbor | Local help from people you trust drea: podcast ad blocker App - App Store JS Crossword GitHub - jake-stewart/tuie: A rich, performant TUI library for Rust. GitHub - AlexWasHeree/NoteCast: Local note engine that uses LLM to build and evolve a knowledge graph stocks.sjer.red — long PC parts RocketGraph — Never look at logs again Show HN: Replacing a 3.4MB video with 40kb of GSAP Show HN: Lightweight, OpenSource, zero-dependency App tour & user onboarding SDK Treasury — Personal Finance App | AI Insights & Budgeting Show HN: MailMark – Cold email tool where you own your domain and mailboxes Voxxy: Voice to Text for your Mac Menu Bar Show HN: I built a TikTok style video debate app GitHub - acatovic/ai-game-studio: AI generation of 2d game assets such as spritesheets Assemblr GitHub - AlexMason/worldnotes: Extensible inline-markdown editor with wiki-style navigation Show HN: Brew-browser – A native macOS GUI for Homebrew GitHub - aloth/cred-1: CRED-1: An Open Multi-Signal Domain Credibility Dataset (2,672 domains) Show HN: TalkTimer, a micro-SaaS run by an AI agent team Trickster's Table invest-like - AI value-investing: best-tier consensus beat S&P 500 by +72.7% GitHub - kimjune01/swebench-verified: Reproducible recon/craft/audit agent pipeline for SWE-bench Verified. Official-graded, codex-attested, GPL-3.0. Run it yourself. GitHub - mupt-ai/context-drop: cli tool to make sharing context between remote agents dead easy
GitHub - ystepanoff/awo: AWO — Agent Worktree Orchestrator: a local Go CLI that coordinates Claude Code and Codex across isolated git worktrees with deterministic verification.
ystepanoff · 2026-05-26 · via Hacker News: Show HN

AWO logo

AWO is a local Go CLI that coordinates Claude Code and Codex across isolated git worktrees, runs deterministic verification commands against the result, and produces a structured artifact bundle (run.json, proof-pack.md, diff.patch, agent stdout/stderr) that a human reviews before merging.

AWO does not commit, push, merge, or open pull requests on your behalf.

What AWO is

A small, opinionated wrapper around two existing CLI tools — claude and codex — that:

  • Carves out an isolated git worktree per agent so agent edits never touch your working tree directly.
  • Runs the agents you choose against the same task, in one of three modes (single, writer-reviewer, competitive).
  • Runs the verification commands you configure (e.g. go test ./...) inside the worktree, and treats the exit code as the only trusted signal of success.
  • Writes a deterministic artifact bundle under .awo/runs/<run-id>/ so the run is auditable after the fact.
  • Hands the result back to you as a candidate change to review, commit, push, and PR — manually.

Why isolated worktrees matter

Letting an agent edit your live working tree is high-blast-radius: mid-run failures leave you with a half-applied change, parallel processes (your editor, your dev server) see partial state, and there is no clean "undo" if the agent goes off the rails.

git worktree lets each agent run in its own checkout of your repo on its own branch, sharing the same .git directory. AWO uses that to:

  • Run multiple agents in parallel (competitive mode) without them stepping on each other.
  • Bound the blast radius: AWO will only ever delete paths under .awo/worktrees/, never your real source tree.
  • Capture an exact diff per agent for review.

Why Claude + Codex as separate backends

Claude Code and Codex have meaningfully different strengths, prompt ergonomics, and failure modes. Forcing one to ape the other loses information — you want the real output of each.

  • Single mode lets you pick the better tool for the task at hand.
  • Writer-reviewer mode uses one as the writer and the other as the reviewer, which surfaces blind spots that a same-model review would not catch.
  • Competitive mode runs both on the same task and ranks them with a deterministic, explainable scoring function — never with an LLM judge.

The two backends are wired through small adapter layers so adding a third (or swapping CLI versions) is a config change, not a code change.

Installation from source

Requires Go 1.22+.

# install into $GOBIN
go install github.com/awo-dev/awo/cmd/awo@latest

# or build a local binary
git clone https://github.com/ystepanoff/awo.git
cd awo
go build ./cmd/awo

The awo binary is the only thing AWO ships — no daemon, no service, no remote dependencies.

Prerequisites

awo doctor checks all four and prints what's missing or unauthenticated.

Quick start

# Inside your project's git repo:
awo init                                  # scaffold .awo/, awo.config.json, CLAUDE.md, AGENTS.md
awo doctor                                # confirm git/go/claude/codex are reachable
awo run "add tests for calculator" \
    --mode single \
    --agent claude \
    --verify "go test ./..."

Want a safe sandbox before pointing AWO at your real code? awo examples create-fixture materializes a tiny self-contained Go module under .awo/fixtures/sample-go-app/ (its own git repo) so you can dogfood every mode without risk.

Single mode

One agent does the work end-to-end inside a writer worktree. Verification runs in the same worktree.

awo run "fix the off-by-one in pagination" \
    --mode single \
    --agent claude \
    --verify "go test ./..."

awo run "fix the off-by-one in pagination" \
    --mode single \
    --agent codex \
    --verify "go test ./..."

Use this when you've already decided which agent is best suited to the task.

Writer-reviewer mode

A primary agent writes the change in a writer worktree; a different agent reviews the writer's diff in a separate read-only worktree carved from the same base. The reviewer's findings are surfaced in the proof pack, but the reviewer cannot modify the writer's worktree — any files it touches in its own worktree become a warning, not a patch.

awo run "fix checkout validation" \
    --mode writer-reviewer \
    --primary claude \
    --reviewer codex \
    --verify "go test ./..."

Use this when you want a different model's eyes on the change before you spend your own attention on it.

Competitive mode

Two agents attempt the same task in parallel in independent worktrees. AWO runs verification against each, scores them with a deterministic function (verification status, diff size, test files added, protected paths touched), and surfaces the comparison.

awo run "migrate date utility usage" \
    --mode competitive \
    --competitors claude,codex \
    --verify "go test ./..."

There is no LLM judge. The scoring is intentionally explainable — the proof pack lists the inputs to every score so you can disagree with the ranking on the spot.

Safety model

AWO's safety stance is captured in three rules:

  1. Verification command exit codes are the only trusted signal of success. Agent self-reports ("I ran the tests and they passed") are persisted as advisory metadata only.
  2. AWO never mutates state outside its sandbox. Worktree deletions are constrained to paths under .awo/worktrees/. Branches outside config.branchPrefix (default awo) are never touched. The outer repo's HEAD and working tree are never modified by AWO.
  3. Human review is always required. AWO has no merge button. The final step of every run is a recommendation to a human, who is the only thing that turns AWO output into a real PR.

Additional hard rules implemented in code:

  • Protected paths (default: auth/**, payments/**, migrations/**, infra/**, .github/workflows/**, **/.env*, **/*secret*, **/*credential*, **/*permission*) escalate the recommendation to needs_human_attention whenever they are touched.
  • Patches that exceed safety.maxChangedFiles (default 50) escalate to too_large_for_auto_review.
  • Reviewer-side worktree edits in writer-reviewer mode are detected and surfaced as warnings, never applied.
  • Agents are not allowed to inspect each other's worktrees.

See docs/safety.md for the full list.

What AWO does not do

  • It does not auto-merge.
  • It does not auto-commit.
  • It does not push to remotes.
  • It does not open pull requests. (awo pr prepare writes a pr-description.md you can paste; it does not call gh.)
  • It does not delete files outside .awo/worktrees/.
  • It does not guarantee correctness. Agents make mistakes; tests miss things; the recommendation is a heuristic.
  • It is not a replacement for human code review.

Artifact layout

Every run writes a directory under .awo/runs/<run-id>/:

.awo/runs/20260525-094200-abc123/
├── run.json            # canonical machine-readable record (RunReport)
├── proof-pack.md       # long-form human report
├── summary.md          # short-form human summary
├── comparison.md       # competitive mode only
├── pr-description.md   # written by `awo pr prepare` (not by run)
├── diff.patch          # the diff produced by the selected candidate
├── agents/
│   └── <agent>-<role>/ # per-agent stdout, stderr, prompt, command
└── verify/
    └── 000/            # per-verification-command stdout, stderr, exit

Inspecting after a run:

ls .awo/runs/$(ls -t .awo/runs | head -n 1)/
cat .awo/runs/<run-id>/proof-pack.md
git -C <worktree-path> diff

awo worktrees list shows the worktrees AWO is tracking; awo worktrees cleanup --run-id <id> removes them when you no longer need them.

Configuration reference

awo init writes awo.config.json with sensible defaults. The full schema and recommended overrides are in docs/configuration.md. Highlights:

Field Default What it controls
branchPrefix awo All AWO branches start with this prefix; nothing else is touched.
worktreeBaseDir .awo/worktrees Where worktrees live; deletions are bounded to this path.
artifactDir .awo/runs Where run artifacts are written.
defaultVerifyCommands [] Commands run when --verify is not passed.
agents.claude.command / writerArgs / reviewerArgs claude / -p --permission-mode acceptEdits / -p --permission-mode plan Per-role argv. AWO runs every agent non-interactively; if the CLI hits an approval prompt the run fails closed with permission_required.
agents.codex.command / writerArgs / reviewerArgs codex / exec --sandbox workspace-write / exec --sandbox read-only Same. codex exec is non-interactive by definition; the sandbox flag is the trust boundary. AWO refuses dangerous bypasses (bypassPermissions, danger-full-access, dangerously-bypass-approvals-and-sandbox).
safety.maxChangedFiles 50 Patches above this escalate to too_large_for_auto_review.
safety.protectedPaths (9 globs) Hits escalate to needs_human_attention.
safety.requireConfirmationForProtectedPaths true Reserved for future interactive prompts.

Run awo config print to see the effective config (file values layered on top of defaults).

Roadmap

Short term:

  • More verification adapters beyond shell commands (lint, typecheck).
  • Pluggable scoring weights for competitive mode.
  • A "rerun" subcommand that resumes a failed run from artifacts.
  • Iteration support (safety.maxIterations is currently fixed at 1).

Longer term:

  • Adapters for additional agent backends (Gemini CLI, etc.).
  • A small TUI for inspecting runs in place.
  • A signing/attestation pass over run.json so artifacts can be trusted across machines.

Explicitly out of scope:

  • LLM-as-judge scoring.
  • Auto-commit, auto-push, auto-merge — ever.
  • Anything that mutates state outside the configured AWO sandbox.

Docs

License

See LICENSE.