Releases: ryuhemingway/Ghost-App
Release list
Ghost 4.0.0
Every task a lead agent hands its subagent now says why it was handed off, how long it took, what it cost and which files it changed. Subagents also reply as they work instead of arriving minutes late.
A record of every subagent task
Each task card shows the lead's reason for handing it off, how long it ran, its tokens and cost, and the files it changed with lines added and removed. Only edits that actually landed are counted. A chat's row in the list sums it up, and the chat header opens a log of every task with the subagent's cost beside the lead's.
In the Agents tab, open a Claude chat that has a subagent and click the Subagent button in its header.
Subagents answer in seconds
A quiet agent used to hold back every other agent's output until it printed something, so a nested subagent could take two minutes to reply and its final cost could go missing. Output from each agent now arrives the moment it is written.
Nothing to do.
Requires macOS 14 or later, Apple silicon. Existing installs update themselves; this build is notarized and stapled.
Ghost 3.8.0
A coding agent running in Ghost's Terminal now asks you before it acts, and asks you in the notch.
The Allow or Deny card actually appears now
Claude Code and opencode ask before running a shell command, editing or writing a file, or fetching a page, and you answer in the notch. One switch decides it, and it no longer follows the approval mode on the AI page: that mode governs Ghost's own tools, which Ghost classifies and can undo, and this governs another program's, which it cannot.
3.7.0 shipped this feature unable to fire. The live terminal read the approval tier meant for Ghost's own tools, so on a Mac set to Auto-run no gate was written into the session at all and the card never came, however the switch was set.
Settings ▸ Privacy ▸ Live terminal ▸ Ask me before a live agent acts.
Answer what the agent asks, in the notch
When an agent stops to ask you something, the question comes to the notch with its options as buttons instead of staying buried in the terminal. Pick one and the turn carries on. A question that takes more than one answer ticks them off and waits for Submit, and "Answer in the terminal" hands it back to the agent if you would rather type something that is not on the list.
Nothing to turn on. It appears the moment an agent asks.
Requires macOS 14 or later, Apple silicon. Existing installs update themselves; this build is notarized and stapled.
Ghost 3.4.6
Naming a Google calendar works whichever way round you say it.
3.4.3 read the calendar name only when it came before the word "calendar". Ask for "google calendar JM" and Ghost went looking for a calendar called "google", found none, and let the event fall through to the default, which is the exact misfiling 3.4.3 set out to stop. Ghost now reads the name on either side of the word, and a calendar it cannot find is reported along with the ones you do have instead of being quietly swapped for the default.
The calendar name is read on either side of the word
"Add a meeting to google calendar JM today at 10am" now creates the event in JM, understanding the word before "calendar" as the account it lives in. "In my JM calendar" works as it did, and if the account name happens to be a calendar name too, Ghost tries both and uses whichever one you actually have.
Calendar names with punctuation, symbols or emoji are read
A title Ghost could not spell out was worse than one it read wrongly, because it then looked like no calendar had been asked for at all and the event went to the default quietly. "Work (Team)", "Ryu | Personal", "📅 Work", "2026 Planning", "On Call" and calendars called "Main" or "Shared" all resolve now. Of 78 combinations of title and phrasing, 26 used to fail and 14 of those failed silently.
"calendar: JM" works mid sentence
The written form only ever worked at the very end of a request. Anywhere else Ghost read the rest of the sentence as part of the name, so "calendar: JM today at 10am" asked for a calendar called "JM today at 10am" and of course did not find one.
Fixed: a calendar Ghost could not find became the default
A name that did not match was quietly handed to the model to sort out, and what it did instead was drop the name, use the default calendar and report success. Ghost now stops and lists the calendars it can write to.
Build 30406. Notarized, stapled, Gatekeeper accepted. Existing installs update automatically through Sparkle.
Version 3.4.5 was built but never published, so it exists for nobody.
Ghost 3.2.0
DeepSeek learned to look at pictures, and Ghost learned how to look like less.
DeepSeek reads images
DeepSeek shipped a vision model, and Ghost sends it images the way it always has for Claude and Gemini: the picture travels with your question rather than being described to the model second-hand. It is the only DeepSeek model that accepts images, so Ghost offers it as its own entry in the model picker rather than quietly changing what Flash means. Attach a picture while Flash or Pro is selected and Ghost names the model to switch to, instead of sending a request DeepSeek would refuse outright.
Settings ▸ AI ▸ DeepSeek model ▸ Flash Vision, then attach an image in the composer. Text-heavy screenshots still read faster and more accurately through Read Screen Selection, which uses your Mac's own text recognition and never sends the picture anywhere.
Minimal, for when Ghost should hold still
Everything the standard theme draws, minus everything it draws for effect: no halo around the rim, no sheen drifting behind the caret, and a plain grey hairline where the gold was. Nothing on the surface moves unless Ghost is actually doing something, which is what makes the working light legible again. Your accent colour still applies.
Glass, rimmed in frost rather than gold
The sheerest surface the material will give, so Ghost sits lightly over whatever is behind it. It is the one theme that sets the glass level itself rather than leaving it to the slider, because the look only holds together at the sheer end.
Both themes are at Settings ▸ General ▸ Theme.
Notarized by Apple and stapled. macOS 14+, Apple silicon. Existing installs update through Sparkle; the website Download button always serves the newest release.
Also since 3.0.0, which the releases page skipped: code in an answer is set as code, Ghost asks where an answer should land instead of guessing, and Open at Login works.
Ghost 3.0.0
Paste a screenshot into the box and ask about it. And reading your screen is instant now.
Ghost could always read text off your screen, and it could never look at a picture you handed it. Both of those changed. Press ⌘V with a screenshot on the clipboard and it goes into the message like a file, whatever model you are on, including your Claude subscription. And the screen reader that used to sit there for a minute over two words now answers in about a tenth of a second.
⌘V a screenshot straight into the chat bar
Take a screenshot, press ⌘V in Ghost, ask your question. The image rides along with the message and Ghost answers about what is in it. This works in the notch and in the floating bar. Pasting an image used to do nothing at all, silently, while pasting text worked perfectly, which is a hard thing to report as a bug and an easy one to assume was never a feature.
Nothing to turn on. ⌘⇧⌃4 to copy a region of the screen, ⌘V in Ghost, then type your question and press Return. Ordinary text paste behaves exactly as before.
Your subscription can look at images too
On a Claude or ChatGPT subscription Ghost used to refuse an attached image and tell you to switch to an API key and a vision model. That advice was wrong: the model at the other end of your subscription reads images perfectly well. Ghost now hands the picture over in a way that route can accept, and gives it the means to open it, so you get a real answer instead of a redirect.
Reading your screen no longer takes a minute
The first screen read after a macOS update could take the better part of a minute, even for two words, and every one after it was instant. That was macOS loading its text recognizer, not Ghost thinking: about 55 seconds the first time and about a tenth of a second every time after, whatever the words say. Ghost now wakes the recognizer quietly when it starts, so nobody ever waits for it. Two smaller things alongside: a screen read finishes the moment the words are on screen rather than holding on for an optional cleanup pass, and a short blurry read no longer spends a network round trip to be handed its own guess back.
Asking for your screen is the same as pressing the button
Typing "read my screen" used to be sent off to a model that had to decide to go and look, which is a round trip for something your Mac does on its own. It now runs the same instant capture the button does. Only for asking flatly for the screen: a question that needs an answer as well as the words, like why an error is happening, still goes to the model where it belongs.
Apple-notarized. macOS 14+, Apple silicon. Existing installs update through Sparkle; this page and integratedagentics.com/ghost both serve the newest release.
Releases 2.11.0 and 2.12.0 were shipped through the updater and the website but never published here; their notes are in Settings ▸ Updates and on the site's changelog.
Ghost 2.10.0
Standing reference rules, spreadsheets Ghost can change, and the macOS 27 menu bar fix. Download the notarized build below, or let Sparkle update you from inside the app.
Ghost 2.7.0
Ghost stopped asking a model what two plus two is.
Sums, conversions, the clock, dates and text tools are computation, not knowledge. All of it now happens on your Mac, before any provider is contacted, with no API key and no permission needed.
- Maths, percentages and conversions answer instantly.
2+558, brackets, powers,sqrtand friends.20% of 250,15% off 80,18% tip on 64.50. Length, mass, volume, temperature, duration, data, speed, area and angle, asked either way round.255 in hexand0xff in decimal. - Dates, the clock and time zones, offline.
days until christmas,3 weeks from today,days between 1 January and 1 March,what time is it in Tokyo. - Text tools and number formats. Word, character and line counts. Case changes, slugify, JSON pretty print and minify, URL encode, base64, SHA-256. Roman numerals, numbers in words, ordinals.
- Asking for someone's number tells you the truth.
what is moms numberused to reach a model that cannot read Contacts and would invent one. The apostrophe is optional now,momresolves through the relationships on your own contact card, and when Ghost cannot find someone it says so. - The chat bar has a Clear chat button that says so, and the name follows what it will actually do.
Add words around a sum and the question still goes to a model, so why does 2+2=4 gets a real answer.
Ghost 2.6.0
Ghost 2.6.0 — closing an app is now as quick as opening one.
close Safari,quit Slack and Spotify. Close, quit, exit, kill and force quit all work, on up to four apps at once, and they answer on this Mac before any model runs. Opening an app has worked that way for a long time; closing one went to a model, stopped to ask for approval, and on a bad day came back claiming it had closed something it never touched.- Ghost tells you what actually closed. An app holding an unsaved-changes dialog is reported as still running rather than counted as closed, one that was not open to begin with says so, and Undo reopens whatever really did close.
- It knows what is not an app. "close the window", "close this tab", "close everything" and "shut down my Mac" mean something other than quitting an application, so Ghost leaves them alone. A request that names one real app and one thing that is not an app does nothing at all, instead of quietly doing half of it.
- The instant commands stopped asking for an API key. Opening an app, closing one, starting a timer and writing a note all happen on this Mac and reach no provider, so they run before the credentials check now instead of answering that Ghost has no credentials.
Releases 2.3.0 through 2.5.1 shipped through the in-app updater while this page stood still. 2.6.0 is the current build, and the in-app updater serves it too.
SHA-256: 7afb4a1654c5a4cab6dac53af0c6e261ab048bda6702818a5695ac989c93e5d4
Download Ghost 2.6.0 · Website · Free 24-hour trial, then a one-time $14.99 lifetime license.
Ghost 2.2.0
Ghost 2.2.0 — a day of using it, everything that went wrong written down and fixed.
- Ghost has stopped taking ⌘/ from your other apps. ⌘/ opened Ghost's shortcut sheet everywhere, breaking comment-toggle in Xcode and VS Code. Both utility shortcuts are optional now, and the sheet is off by default.
- A menu bar icon, so you can tell Ghost is running. Settings also names any shortcut another app has taken, so a dead keystroke explains itself.
- Pressing Return no longer freezes the window. Document search moved off the main thread — around twenty times faster.
- Answers arrive typeset instead of as raw markdown.
- Dialogs open in front of Ghost, not behind it. The panel steps aside for anything it doesn't own.
- Approve a destination once instead of every time. The third approval button now allows a site or folder for the rest of the session — never for sending a message, placing a call, uninstalling an app, or emptying the Trash.
- The shortcut sheet only lists shortcuts that exist. ⌘1-⌘4 switch sections, ⌘N/⌘L/⌘R start, clear and regenerate, ⌘, opens the real settings.
- Smaller things that were quietly wrong. The composer suggests what Ghost can do, ✗ is now New chat, and two Light-appearance controls (including Copy under every answer) are visible again.
SHA-256: 1c7c16d57505aae70b664619ea81e7e1e5d0190ebbff4ae8e2122421075cd79f
Download Ghost 2.2.0 · Website · Free 24-hour trial, then a one-time $14.99 lifetime license.
Ghost 2.1.0
Ghost introduces itself now, and shows you what it can do.
Download Ghost-2.1.0.zip, or let Sparkle update you automatically. Notarized, macOS 14+, Apple silicon.
A real first run
A new install used to open an empty text field and leave you to guess. There is a proper first run now: where answers come from, one honest page about permissions, and a first question you can click to run.
Ghost also stops taking your keyboard. It used to bring its window forward and grab focus on every launch, including at login, because it treated every launch as a first one.
Type a slash to see everything it can do
Around thirty commands were reachable only if you already knew to type /help. They are listed and filtered as you type now. A blank chat also suggests a few questions, picked from what your permission switches actually allow, and they retire once you have used Ghost a few times.
Security fix: a web fetch could leak your conversation
When you named a page for Ghost to read, it skipped its approval prompt because you had chosen the destination yourself. That check compared only the host and the path, so an injected web page could talk Ghost into fetching the same address with your conversation attached as a query string, and no approval appeared. The check now covers the whole destination: query string, fragment, port and any embedded credentials.
Conversations
Searchable across titles and message text, renameable, and deletable one thread at a time instead of all at once. Answers also fill the window, and the window has a size setting that applies immediately.
Undo reaches everything it can reverse
Reminders and calendar events recorded an undo the interface never offered. Quitting an app is undoable now too. Where Ghost genuinely cannot reverse something, uninstalling an app or clearing junk, the card tells you the change is in the Trash and how to put it back, instead of showing a dead button.
Shortcuts, Spotlight, and a selection bar that suits the app you are in
Ask Ghost, Start Focus Timer and Toggle Ghost are system actions now. The selection bar also reorders itself for where you selected: Explain leads in a code editor, Fix grammar leads in Mail. Nothing is removed, only reordered.
A calmer window
Long answers are set to the full width of the window rather than a fixed column. The three badges above an answer and the duplicate line beneath it became one quiet line. Numbered lists line up. Settings lost a layer of decoration, its provider menu is aligned again, and it tells you which model will actually answer. Every icon-only control now has a name for VoiceOver.
Ghost 2.0.9 remains available below for anyone on builds 2.0.1 to 2.0.5, which cannot update themselves.