Yardlet

A native macOS workbench that runs Codex, Claude Code and other coding-agent CLIs side by side in one window.

Source repo
zzunkie/yardlet
Stars
★ 31
Last updated
today
License
MIT
Primary language
Swift

At a glance

How it runs
Desktop app
Works with
Portable with changesCodex · Claude CodeChatGPT · OpenAI API · Claude API (Partial support)
Cost
Free, no paid service needed
Setup effort
Medium · a few setup steps
You'll need
macOS 15 or later on Apple siliconXcode 27.1 or later (Swift 6.4) to build from sourceAt least one agent CLI installed and signed in (e.g. codex or claude)Shell / CLINetwork accessLocal filesystemMCP Server
Typical use
Developers who run Codex and Claude Code on the same project and want both tasks visible in one window instead of juggling terminal tabs
Not a fit if
  • Teams working on Windows or Intel Macs
  • Users who want built-in model accounts instead of installing their own CLIs
  • Anyone needing a Linux-only or headless server workflow

What does this agent do, and when should you use it?

Yardlet is a native macOS app written in Swift and SwiftUI — not a web view — that runs coding-agent CLIs such as Codex, Claude Code, OpenCode, Cursor Agent, Antigravity CLI, Kimi Code, Grok Build and Pi in one window. It does not replace the agents or proxy their accounts: it launches the CLI you already signed in to, so each agent keeps its own loop, sign-in and session history. Sessions stay in the agents' own stores (Codex against your normal CODEX_HOME, Claude Code in its own store), so a task can resume in the original app or CLI and vice versa; Yardlet keeps only its own index, drafts and reading state under ~/.yardlet. Around the conversation it adds last-turn diffs, file restore and fork, a pull-request tab that uses your own gh, a terminal, a files pane, a Chromium browser panel the agents can drive, connectors (Gmail, Google Calendar and Google Drive via a built-in local MCP server, plus GitHub, Slack and remote MCP services), multi-account quota views, scheduled tasks and session tools. It ships as a notarized DMG and a Homebrew cask, self-updates through Sparkle, and is MIT-licensed.

On launch Yardlet starts the agent CLIs installed on your Mac (for example codex or claude) and drives them through a shared sidebar, conversation view, composer and approval cards; each task is bound to a CLI runtime and a registered provider account, and new tasks can be created on the account with quota left. It indexes each agent's native session store — Codex runs against the native CODEX_HOME, normally ~/.codex — while keeping its own task index, drafts and reading state in ~/.yardlet, so sessions resume across Yardlet and the original CLI. While a task runs it shows the diff of the last turn, supports file restore and fork, opens a pull-request tab whose checks come through your own gh, and puts a terminal and file pane beside the conversation. A built-in MCP server on the Mac provides Gmail, Google Calendar and Google Drive connectors; GitHub, Slack and remote MCP services connect with one sign-in, and connector sets can be turned off per task. A Chromium panel lets agents drive a browser while you watch, and scheduled tasks plus session tools let one task read, message or start another.

  1. Developers who run Codex and Claude Code on the same project and want both tasks visible in one window instead of juggling terminal tabs
  2. People with several accounts per provider who need to start a task on the account with quota left and see session and weekly limits
  3. Engineers who want to review the last turn's diff, restore a file or fork a session before committing
  4. Teams that want Gmail, Google Calendar, Google Drive, GitHub and Slack offered once to every agent they run, toggled per task
  5. Anyone who wants an agent to open and drive a browser page under supervision during a task
  6. Users who value a local-first tool and want to quit or delete it without disturbing their agents' sign-ins and sessions

How do you install or deploy this agent?

Download the notarized Yardlet-<version>.dmg from GitHub Releases, open it and drag Yardlet to Applications, or install with Homebrew:

brew install --cask zzunkie/tap/yardlet

Requirements: macOS 15 or later on Apple silicon, and at least one agent CLI installed and signed in (for example codex or claude). After installation Yardlet checks https://yardlet.app/appcast.xml daily through Sparkle and updates itself.

To build from source you need Xcode 27.1 or later (Swift 6.4):

swift build --build-system native
./scripts/test-fast.sh
swift run --build-system native NativeHarnessClient

To produce a normally registered macOS app bundle:

./scripts/build-app.sh
open .build/Yardlet.app

How do you use this agent?

Make sure the target CLI is signed in, launch Yardlet, then create a task in the sidebar and pick the agent to run. For Claude, sign in through the CLI itself first:

claude auth login

Register extra accounts per provider under Connections → Accounts; new tasks can be created on the account with quota left, while saved tasks keep their chosen CLI environment. During a task you can read the diff, open pull-request checks through your own gh, and use the terminal and files panes; connectors are configured once and enabled or disabled per task. If an update is pending while tasks run, the Yardlet menu shows Waiting to Update and installs once they finish, or Cancel Update defers it to the next quit. To uninstall, quit Yardlet and move it to the Trash, or run:

brew uninstall --cask zzunkie/tap/yardlet

To remove Yardlet's own data as well:

brew uninstall --zap --cask zzunkie/tap/yardlet

What are this agent's strengths and limitations?

Pros
  • Does not replace or proxy agents: it starts the CLI you already signed in to, so removing Yardlet leaves each agent's sign-in and sessions untouched
  • Sessions stay in Codex's native CODEX_HOME and Claude Code's own store and can resume in either direction, avoiding migration lock-in
  • One shared sidebar, conversation view, composer and approval cards across Codex, Claude Code, OpenCode, Cursor Agent and others
  • Built-in diff review, file restore and fork, gh-backed PR checks, terminal, files pane and a Chromium panel cover change-to-verification in one place
  • Local-first: no analytics, task metadata in ~/.yardlet, connector credentials in the macOS Keychain, connector calls going straight from your Mac to the service
Limitations
  • Requires macOS 15 or later on Apple silicon — no Windows or Intel Mac support
  • Provides no model quota itself; you must install and sign in to each agent CLI and pay its provider separately
  • Building from source needs Xcode 27.1 / Swift 6.4; the README states Xcode 26 cannot compile it
  • main can be ahead of the latest release, so features described in the repo may not be in the version you installed
  • Several capabilities carry documented limits, such as MCP connectors and Touch ID passkeys in the built-in browser with the stock CEF build

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Yardlet This agent 49 · Major gaps Desktop appFree ★ 31 today Swift Codex · Claude Code
wsp 39 · Major gaps Desktop appFree + model costs ★ 14 today TypeScript Codex · Claude Code
Coven 79 · Good CLIFree ★ 76 today Rust Codex · Claude Code
Rovai AI 49 · Major gaps — ★ 247 today Rust Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
49/ 100 5-point scale 2.5 / 5
This review covers the source as of Oct 30, 2026. The project has shipped 3 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 16/29
Reliability 6/14
Adaptability 9/18
Convention 8/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust16 / 29 · 2.8/5

README states the app does not write into agents' configs, does not copy credentials, keeps connector sign-ins in Keychain, has no analytics, and documents uninstall plus rollback (Updates/Previous, confirmed Install Update, Sparkle signature checks) — positive. However the app's permission surface is large: embedded Chromium, built-in MCP server, terminal, Apple Events/camera/mic entitlements, and a root lid helper; the README describes mechanisms but gives no least-privilege argument, so least_privilege scores 1. Dependency security shows only CEF hash verification and pinned CI action SHAs, with no dependency manifest or vulnerability governance, scoring 1. External effects (connectors, browser, phone relay) are described but lack per-item consent and impact disclosure, scoring 1.

Reliability6 / 14 · 2.1/5

README and CI agree on build/test flow (swift build, test-fast.sh, Xcode 27.1), so self_consistency scores 2. Dependency availability requires Xcode 27.1/Swift 6.4, Apple silicon, macOS 15+, plus a separate CEF download, with no fallback, scoring 1. Failure messages appear only as relay test error-code mappings; app-side error handling is not evidenced, scoring 1.

Adaptability9 / 18 · 2.5/5

Target audience (macOS developers running multiple agents) and scenarios are clear, and capability boundaries (does not replace agents, does not proxy accounts, sessions stay in native stores) are well stated, scoring 2. Trigger precision is weak: scheduled tasks, cross-session read/message/start, and agent-driven browser control lack precise trigger constraints, scoring 1. Environment fit is limited to Apple silicon + macOS 15+, with no Intel or cross-platform support, scoring 1.

Convention8 / 18 · 2.2/5

README has a complete structure (install, updates, uninstall, privacy, development, releases), scoring 2 for information architecture; install notes cover DMG and Homebrew, scoring 2; MIT license file is complete, scoring 2. Naming stability is weaker: multiple paths/identifiers (~/.yardlet, com.zzunkie.yardlet, retained legacy isolated Codex home) with complex migration semantics and no stability commitment, scoring 1. Examples and FAQ are limited to screenshots and scattered notes with no FAQ, scoring 1. Known limitations are scattered in prose (personal agent limits, no iCloud Keychain passkeys) rather than consolidated, scoring 1. Versioning relies on Releases and CFBundleVersion with no CHANGELOG file, scoring 1. Maintenance responsibility: SECURITY.md states single-maintainer, latest-release-only support, and publisher identity is unverified, scoring 1.

Effectiveness7 / 13 · 2.7/5

Output usability is good: diffs, PR checks, terminal, and file pane provide practical artifacts, scoring 2. Marginal value is clear — a unified multi-agent workbench with account quota management adds value over raw CLIs, scoring 2. Cost-benefit is weaker: macOS 15+ Apple silicon, Xcode 27.1 build, CEF download, and signing/notarization steps make adoption costly for ordinary users, scoring 1.

Verifiability3 / 8 · 1.9/5

Many README claims (Touch ID verification dated 2026-10-23, performance bench, notarization flow) trace to scripts and docs, but most are self-asserted without independent corroboration, scoring 1 for claim_traceability. Cross-source corroboration exists where CI matches README test descriptions and relay tests match the relay description, but core app behavior has no shown test evidence, scoring 1. Fact/inference separation is weak: README mixes shipped features with roadmap/future plans (roadmap link) without clear demarcation, scoring 1.

Risks and how to mitigate them
  • The app has a broad permission surface (embedded Chromium, MCP server, terminal, Apple Events/camera/mic, root lid helper) with no least-privilege argument in the README; review entitlements and the helper's SpawnConstraint before deployment.
  • Building requires Xcode 27.1/Swift 6.4 and Apple silicon, and CEF must be downloaded and hash-verified separately, making source reproduction hard for ordinary users.
  • Publisher identity is unverified; updates rely on the yardlet.app appcast and a built-in Sparkle key, so confirm signatures and Developer ID before trusting auto-updates.
  • The phone remote routes end-to-end encrypted messages through relay.yardlet.app; the claim that the relay cannot read them cannot be statically confirmed against the deployed service.
  • README mixes shipped features with roadmap plans and scatters known limitations; verify actual capability against Releases and code.
Evidence confidence: Low Reviewed Oct 30, 2026 Reviewed revision 0c9b4240e4ac New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.11.8 Yardlet 0.11.8
    Release notes excerpt
    Yardlet 0.11.8 Mail - A mailbox shows the inboxes of your connected Gmail, Outlook Mail and IMAP accounts beside tasks and personal agents. It is off by default: turn it on in Settings › General › Mailbox, and Mail appears next to Tasks and Personal agents. - Read threads in place, write, reply and forward. What you write is saved to the account's own Drafts, and Send waits five seconds, during which Undo takes the message back. - Mail stays on the service. The mailbox reads it when it is shown and keeps it in memory only. …
    View on GitHub ↗
  2. v0.11.7 Yardlet 0.11.7
    Release notes excerpt
    Yardlet 0.11.7 Security - Keys and tokens that a web page shows, such as an API key on a service's settings page, are hidden from what the browser tools return to agents. Settings › General › Hide keys and tokens turns this off. - Reading files from a paired phone is more limited. Google - Yardlet's own Google app now signs in for Gmail, Calendar and Drive only. Google Analytics and Google Ads need a Google OAuth app of your own: Settings › Connectors › Google › Use a Google OAuth app of your own… …
    View on GitHub ↗
  3. v0.11.6 Yardlet 0.11.6
    Release notes excerpt
    Yardlet 0.11.6 Yardlet starts on macOS 15 again. Since 0.11.0 it quit as soon as it opened there. If you are on macOS 15, download this version: the earlier ones cannot open to update themselves. New - The browser panel saves and fills your addresses and payment cards. A card fills only after Touch ID, never with its security code, and never for an agent. - Sign-ins that ask for the username first keep it for the password step, and other fields such as an AWS account ID are saved with the item. The save bar closes with an X and says Save when it adds a username. …
    View on GitHub ↗

FAQ

Does Yardlet take over my Codex or Claude account?
No. It launches the CLI you are signed in to and uses that CLI's own authentication; it does not copy credentials or write them into another home. For Claude, if claude auth status reports loggedIn: false, run claude auth login yourself.
Are agent sessions lost if I uninstall Yardlet?
No. Sessions remain in each agent's own store; Yardlet only keeps its task list, drafts and reading state under ~/.yardlet. If 'Keep tasks working with the lid closed' is enabled, turn it off before uninstalling so macOS does not keep the background item.
Does Yardlet need network access?
Yes. The agents reach their providers, Sparkle asks yardlet.app for the appcast once a day, and — only if you pair a phone remote away from your network — its end-to-end encrypted messages pass through the relay at relay.yardlet.app, which cannot read or store them.
Where does my data go?
Yardlet has no analytics and no server that receives your work; task metadata and drafts live in ~/.yardlet, connector sign-ins in the macOS Keychain, and connector calls go from your Mac to the service. What an agent reads through a connector is sent to that agent's provider under your account.
Can I run it on Windows or an Intel Mac?
No. The README requires macOS 15 or later on Apple silicon.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents