Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
A free, open-source Mac menu bar app that shows whether your Vercel, Cloudflare and GitHub Actions deploys are building, live or broken, across all your accounts and teams.
Developer toolsSwift · AstroGitHub @someguy9OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
A free, open-source Mac menu bar app that shows whether your Vercel, Cloudflare and GitHub Actions deploys are building, live or failed. Every account, every team.
Loading the full README.
Read the full README ↗? while something is building, ✓ once it's live and ! if it broke. It turns amber while building, green for a few minutes after a deploy lands, and red while anything is failing. There are six icon styles, and you can hide the icon until something needs you.The app only reads, so give each token the smallest set of permissions it'll accept:
| Provider | Token | Permissions |
|---|---|---|
| Vercel | Account token | Vercel has no read-only tokens yet. Make one per team and give it an expiry date. |
| Cloudflare | Custom API token | Read on Account Settings, Workers Scripts, Workers Builds Configuration (git builds) and Cloudflare Pages |
| GitHub | Fine-grained token | Read on Actions and Metadata, for the repos you deploy from |
Tokens live in your Mac's Keychain, on this device only. They never get written anywhere else or logged, and they're only sent to api.vercel.com, api.cloudflare.com or api.github.com over HTTPS. Removing an account deletes its token.
To make the menu fill in instantly, the app caches project names, branches and commit messages in ~/Library/Application Support/DeployedYet/. There's no account to sign up for and no crash reporting. Optional usage analytics is on by default in configured release builds and can be disabled in Settings → General → Privacy. Unless you opt out, with a configured build, the app sends a small allowlist of usage events directly to PostHog, using a random installation identifier rather than your account identity. Tokens, project names, repositories, paths, URLs, branches, commit messages, and error text never enter analytics. Turning analytics off discards queued events and removes the local identifier; already-sent events remain in PostHog. PostHog necessarily sees the network address of incoming requests; the app disables location enrichment.
See Analytics setup for project configuration, the event catalog, and DAU/retention dashboard recipes. The production capture token is configured. Debug analytics is disabled.
"Check right after I push" is off until you pick a folder. It watches that folder for git pushes by reading only the last line of git's push log (.git/logs/refs/remotes/). It never runs git, never reads your code, and sends nothing anywhere; a push just makes the app check sooner.
Updates come through Sparkle. Once a day the app downloads appcast.xml from the latest GitHub release, with no tokens and no system profile. A newer version is downloaded in the background, checked against the update key, and swapped in while nothing is building. You can turn this off in General.
You need Xcode and Tuist (brew install tuist).
git clone https://github.com/someguy9/deployedyet
cd deployedyet
app/run-menubar.sh
That script generates the Xcode project, builds it and launches the app, quitting any copy that's already running first.
app/Project.swift signs with my team, so change DEVELOPMENT_TEAM to your own team ID before you build (it's in Xcode's Settings, under Accounts). Keeping the signature stable also stops Keychain from asking for permission after every rebuild.
To cut a release, run app/release.sh. It builds the universal app signed with Developer ID, packs it into the drag-to-Applications DMG, gets it notarized and stapled, checks that Gatekeeper accepts it, and writes a signed appcast.xml for Sparkle. Both land in app/build/release/, and both go on the GitHub release. Bump CFBundleVersion in app/Project.swift every release, since Sparkle only offers a higher build number (the script stops you if you forget). The script also stops if it cannot verify the live appcast, including when offline. Add --no-notarize to try everything except Apple's check.
site/ is deployedyet.com: Astro and Tailwind, served as static files from a Cloudflare Worker.
You need Bun. The exact version is pinned in site/package.json.
cd site
bun install
bun run dev # http://localhost:4321
bun run deploy # build + wrangler deploy
The website changelog uses public GitHub release notes. Builds fetch the latest 100 releases and fall back to a checked-in snapshot when offline; opening the page refreshes the notes directly from GitHub without credentials, so newly published releases appear without a redeploy. If that request fails or JavaScript is unavailable, the page labels the saved notes and links to GitHub's complete release history.
app/ SwiftUI menu bar app (Tuist)
site/ deployedyet.com (Astro, Cloudflare Workers static assets)
Bug reports and ideas go in issues. Pull requests are welcome too, but for anything big, open an issue first so we can agree on the approach.
If it saves you a few dashboard refreshes, you can buy me a coffee.
MIT © 2026 Andy Feliciotti