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

推荐订阅源

博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
aimingoo的专栏
aimingoo的专栏
腾讯CDC
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
G
Google Developers Blog
MongoDB | Blog
MongoDB | Blog
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园_首页
B
Blog RSS Feed
D
Docker
M
MIT News - Artificial intelligence
爱范儿
爱范儿
I
InfoQ

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - frenchie4111/harness: Run a team of agents
frenchie4111 · 2026-04-29 · via Hacker News: Show HN

Harness

Run ten Claudes at once without losing your mind.
Ship more, faster, with every session at your fingertips.

Website · Download · Guide

Harness

Mobile mode

Harness running on a phone, with sidebar of agents and a terminal pane

Control your agents from your phone. Guaranteed to be better than Claude's shitty remote UI.

Browser control

Harness with an embedded browser tab the agent is driving

Give agents control of your browser. Useful for testing your code locally, or just ordering groceries.

→ Visit harness.mikelyons.org for screenshots, feature walkthroughs, and release notes.

Download

Grab the latest release from the releases page.

Installation

  1. Download the .dmg for your Mac architecture from the links above.
  2. Open the .dmg and drag Harness into your Applications folder.
  3. Launch Harness from Applications. The app is signed and notarized, so it should open without any Gatekeeper warnings.
  4. On first launch:
    • Pick a git repository when prompted.
    • Click the ⚙ gear icon in the sidebar and paste a GitHub personal access token (fine-grained or classic, with repo scope). This is optional but required for the PR status panel and checks.
    • When the hooks consent banner appears, click Enable so Harness can install status-tracking hooks globally at ~/.claude/settings.json. One install covers every worktree and is what makes the sidebar status dots reliable. Curious what the hook actually runs? See src/main/hooks.ts (the bash command built by makeHookCommand — it appends one line of JSON per event to /tmp/harness-status/<id>.ndjson) and src/main/agents/claude.ts (where the install/uninstall logic lives).

Requirements

  • macOS (Apple Silicon or Intel)
  • claude CLI installed and on your login shell's PATH
  • git installed (preinstalled on macOS via Xcode Command Line Tools)

Network access

Harness makes outbound network calls to two places: api.github.com (for PR status, check runs, and review state on worktrees that have an open PR) and this project's own GitHub releases feed (for auto-updates via electron-updater). If you have the gh CLI installed and authenticated, Harness will optionally pick up your token from it instead of requiring you to paste a PAT.

The optional remote-control WebSocket transport (used by the web client) is off by default, bearer-token-authed, and bound to 127.0.0.1 when enabled; opting in to LAN access (binding to 0.0.0.0) is a separate explicit config flag.

Uninstallation

  1. Remove the Claude Code hooks (do this while Harness is still running). Open Settings → AgentStatus hooks and click Remove hooks. This strips Harness's entries from ~/.claude/settings.json and leaves any user-authored hooks intact.

  2. Quit Harness with ⌘Q.

  3. Delete the app:

    rm -rf /Applications/Harness.app

    (or drag it to the Trash.)

  4. Remove app data (optional, for a fully clean uninstall):

    rm -rf ~/Library/Application\ Support/Harness
    rm -rf ~/Library/Preferences/org.mikelyons.harness.plist
    rm -rf ~/Library/Saved\ Application\ State/org.mikelyons.harness.savedState
    rm -rf ~/Library/Caches/org.mikelyons.harness
    rm -rf ~/Library/Logs/Harness
  5. If you skipped step 1 and already deleted the app, you can remove the hooks by hand. Open ~/.claude/settings.json and delete any hook entries whose object contains "_marker": "__claude_harness__" — every Harness-managed hook is tagged with that marker, so they're safe to identify and remove.

  6. Optional — clean up worktrees. Harness may have created git worktrees under claude-harness-worktrees/ next to your repos. These are normal git worktrees and aren't removed automatically. To clean them up:

    cd <your-repo>
    git worktree list
    git worktree remove <path>

    Or delete the claude-harness-worktrees/ directories from disk and run git worktree prune in each repo.

Features

  • Multi-agent — run Claude Code or Codex in the same window, one harness for both
  • Multi-repo — manage multiple repos in a single window, switch between them or see everything at once
  • Live PR status — see open PRs and CI checks for every worktree, auto-sorted by urgency
  • Embedded editor — full Monaco-powered editor for tweaking files without leaving Harness
  • Full code review tool — side-by-side syntax-highlighted diffs for every changed file in a worktree
  • Status at a glance — sidebar dots show which agent is working, waiting, or needs approval (powered by Claude Code hooks)
  • Command center — bird's-eye grid of every worktree with mini activity timelines
  • Tabs + vertical split panes — Claude, shells, and editor/diff tabs scoped to each checkout, splittable side-by-side
  • 9 themes — dark, dracula, nord, gruvbox, tokyo night, catppuccin, one dark, solarized dark/light
  • Configurable hotkeys — ⌘1–⌘9 to jump between worktrees, all rebindable
  • MCP: Claude controls Harness — a built-in MCP server lets Claude create and list worktrees on its own

Why did I build this

Honestly I have been using Conductor for a while as a fairly happy customer, but some rough edges have really started to annoy me so on a random Thursday morning I decided to build my own version of it that works the way I want to. Oh yeah did I mention:

Originally vibe coded start to finish — these days I occasionally crack open the actual source. Future travelers: still mostly vibes.

How's it work?

This app is specifically designed to be an easy way to do the sort of ADD fueled multi-worktree development that I have been in-to these days. Along the left you can see all the worktrees you have, and each worktree has it's own claude, additional terminals and PR display.

The main benefit of this is that your worktrees stay organized, and it's very obvious when one of your many claudes needs your attention (the dot will change colors)

Worktrees

This app assumes that you are going to want to use worktrees (otherwise what's the point)

It will create a worktree directory at ../<your repo folder>-worktree and start making worktrees there. This directory will probably be changable at some point

"Roadmap"

  • Initial functionality
  • Proper packaging into an app and dmg for other mac users
  • OTA Updates
  • Settings, configurability, etc
  • Better persistence (PTYs don't really stay if you kill the app, which can be a bit frustrating)
  • Multi-repo support
  • MCP server — Claude can create and manage worktrees itself
  • Command center — bird's-eye view of all worktrees
  • Activity tracking — visual timeline of agent status history
  • Syntax-highlighted diffs
  • 9 built-in themes
  • Support other LLM CLI tools — Codex is now supported alongside Claude Code
  • Per-agent model selection
  • Vertical split panes
  • Contextual system prompt injection so the agent knows it's inside Harness
  • Shared permissions via symlinked Claude settings
  • Release notes page inside the app
  • Browser panes — view localhost dev servers next to the terminal
  • Dev server management — start/stop/inspect dev servers per worktree
  • Notifications when claudes are ready for you (maybe peon noises?)
  • Mobile app
  • Whatever else people want — add a github issue or email me directly!

Setup, building, and running locally

Clone the repo and install dependencies:

git clone https://github.com/frenchie4111/harness.git
cd harness
npm install --legacy-peer-deps

The --legacy-peer-deps flag is required because electron-vite@5 declares a peer range that npm's strict resolver rejects against the installed vite@7.

Common commands:

Command What it does
npm run dev Launch the app in dev mode with hot reload
npm run build Type-check and build main, preload, and renderer to out/
npm run pack Build an unsigned .app for local smoke testing (fast — skips codesigning and notarization)
npm run dist:mac Full signed + notarized macOS build (requires .env with Apple creds)
npm run rebuild:dev Rebuild node-pty against the dev Electron version — run this if dev mode errors with posix_spawnp failed
npm run log Tail the debug log at ~/Library/Application Support/harness/debug.log

After npm run pack, you can launch the unsigned build with:

open release/mac-arm64/Harness.app

If Gatekeeper blocks the unsigned app, strip the quarantine attribute first:

xattr -cr release/mac-arm64/Harness.app

Contributing

I mean if you want? I think you probably just want to tell claude to download it and make whatever changes you want