A Mac app for Claude Code
Claude Code, in your notch.
Type a task into the notch and get back to work. Claude Code runs it in the background, asks before it acts, and tells you when it’s done.
Hover the notch to peek, click it to type.Try / and @, then ↵ to run.
The prompt
Commands and context, right where you look.
Type / for commands: start your dev server or tests, plan before editing, ask a side question. Type @ to mention a file or folder. It becomes a chip, and Claude reads it before it starts.
- New session, background task or continue last. Pick how it runs before you hit Run.
- Project, branch and model sit in the notch’s top band.
- Ask before edits, auto-accept or plan only. Your call, per prompt.
Click in and type / or @. ↑↓ to pick, ↵ to insert.
Drop zone
Drag files onto the notch.
Screenshots, logs, specs: drag them to the top of the screen and the notch opens a drop zone. Let go and they land in a new prompt as @mentions. No window to find first.
Drag a file from this desktop, or one from your Finder. Only its name is used; nothing is read or uploaded.
Drag a file up to the notch, or click one to attach it.
Approvals
Claude asks before it acts.
When a background task wants to run a command, the notch grows into an approval with the exact command and where it runs. Until you answer, the menu bar mark carries an ember dot. When the task finishes, the notch reports back with what changed.
Answer the approval, or open the Daylark menu in the menu bar.
- Allow once, always, or deny. ⌘↵ allows without leaving your editor.
- On the display you’re working on, not buried in a window.
- The same card waits in the session, so a missed one isn’t lost.
The app window
The whole session, when you want it.
Open any task in the full window: every session in the sidebar, Claude’s work folded into “Worked for…” groups, the diff beside it, and one click to commit to a branch or open a pull request.
Upgrade Next.js to the latest version and fix whatever breaks. Keep the build and tests green.
11:40 · background taskNext.js is upgraded and everything that broke is fixed:
- Moved six pages from
getServerSidePropsto server components. - Replaced
next/legacy/imagein four components. - Moved the image domains to
remotePatternsinnext.config.js.
One thing to check yourself: the account page now renders on the server, so its loading state looks slightly different.
Add rate limiting to /api/check — 60 requests per minute per API key, return 429 with a Retry-After header. Write tests.
14:20 · from the notchI'll add a sliding-window limiter as Express middleware, keyed by API key and stored in Redis, then use it on the route and cover it with tests.
PASS src/routes/check.test.ts RUNS src/middleware/rateLimit.test.ts ✓ allows 60 requests in a window (12 ms) ✓ blocks the 61st request with 429 (4 ms) ◌ sets the Retry-After header
The checkout test fails about one run in five. Find out why and make it stable.
13:52 · from the notchThe cart mock resolves after the assertion runs, so the test races. I've awaited it; now I want to run the test 50 times in a row to be sure.
Allow this command?
Fix flaky checkout test · step 4 of ~7
$ npm test -- checkout --runInBand/plan Search on /products takes 2–3 s with a few thousand rows. Find out why before changing anything.
12:05 · plan onlyThe query does a LIKE '%term%' on two unindexed columns and then sorts in memory. Here's what I'd do. Nothing changes until you approve.
Write a migration that moves audit_log to a partitioned table without downtime.
15:10 · new sessionI've written the partitioned table and the backfill. Next is the swap with a short lock.
Document every CLI flag in the README, with one example each.
10:12 · from the notchAdded a Flags section to the README with all 14 flags, their defaults, and an example for each.
Changes
12 filesBrowser
POST/api/check
Checks a claim against your sources. Limited to 60 requests per minute per API key.
Terminal
No terminal yet
Open one in this session’s worktree.
Commit to branch
12 files on claude/upgrade-next, in this session’s worktree.
Switch sessions in the sidebar. Expand “Worked for 18 min”. Commit, or open a pull request.
Built-in browser
A browser Claude can drive. You can take over.
Claude opens your dev server in its own browser, clicks through it, reads what comes back and logs every step, so it can check its work before it tells you it’s done. Take over at any point; it waits until you hand it back.
- A separate profile with no saved logins.
- Every action logged with the time it happened.
- One switch turns it off for a project.
Browser
POST/api/check
Checks a claim against your sources. Limited to 60 requests per minute per API key.
How it runs
The Claude Code you already use.
Daylark is a native Mac app around Claude Code. It has no model, account or bill of its own.
Your sign-in
Daylark runs your own signed-in claude CLI. It never sees or stores your credentials.
Your Claude plan
Work counts against your Claude subscription, the same as Claude Code in the terminal. No API key, and no separate usage bill.
Your Mac
Native Swift for macOS 14 and later. Sessions, worktrees and the browser profile stay on your Mac. No notch? It shows a small island instead.
Daylark is an independent app. It isn’t made or endorsed by Anthropic. Claude and Claude Code are trademarks of Anthropic.
Waitlist
Get Daylark when it’s ready.
We’re letting people in a few at a time. Leave your email and we’ll write once, when there’s a build for you.
You’re on the list.
We’ll write to when Daylark is ready for you.
This build has no waitlist endpoint set, so nothing was sent anywhere.