cd /news/ai-agents/show-hn-aris-an-open-source-agent-th… · home › topics › ai-agents › article
[ARTICLE · art-169578] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Show HN: Aris – an open-source agent that lives in the MacBook notch

Developer LumenJSN released Aris, an open-source agent that runs from the MacBook notch and lets an AI read and act on a Mac's messages, mail, files, calendar and app windows, requiring Apple silicon and macOS 14 Sonoma or later. Aris connects to Claude Code (recommended), Codex, Antigravity, an API key or a local model, and shows a confirm card before anything is sent, written or deleted; the project is ad-hoc signed and not notarized, so users must approve it via System Settings or clear the quarantine flag with xattr. The author warns it is a personal project with no warranty and directs users to read the safety model and the licence's sections 7 and 8 before granting permissions.

read10 min views4 publishedNov 14, 2026
Show HN: Aris – an open-source agent that lives in the MacBook notch
Image: Michielbdejong (auto-discovered)

Aris lives in your MacBook's notch: hold a key and talk, or type. The AI you already use answers, and anything that would act on your Mac asks you first. arismac.app

Warning

Use at your own risk. Aris lets an AI read and act on your Mac: messages, mail, files, calendar and other apps' windows. It asks before anything that writes, sends or deletes, but it is a personal project with no warranty. Read the safety model and the licence's disclaimer (LICENSE, sections 7 and 8) before you grant it permissions.

  1. Install Aris (see Install ) and open it. It sets up its background helper by itself and walks you through the permissions.
  2. Give it a brain: log in to Claude Code, Codex or Antigravity, or add an API key or a local model in Settings › AI services (see Brains ).
  3. Hold ⌥ Space and speak, or click the notch and type. If you use the ChatGPT app, its Chat Bar uses⌥ Space too: change one of the two shortcuts (Aris: Settings › Shortcuts).
  4. When Aris wants to send, write or delete something, a confirm card shows exactly what will happen. Edit it, say yes, or cancel.
  5. Hold the right ⌥ to dictate into any app. History, usage, to-dos and the calendar live in the side notches.

Requires a Mac with Apple silicon and macOS 14 Sonoma or later. The notch's glass look needs macOS 26; older systems get a plain dark notch. Macs without a notch work too.

  1. Download Aris (the latestAris-<version>.dmg , also onReleases ) and open it.
  2. Drag Aris ontoApplications , then open it from there.

Aris is ad-hoc signed and not notarized (the project has no Developer ID), so the first launch is refused ("Apple could not verify Aris"). Allow it once per download, in one of these ways:

System Settings : click Done, go to Privacy & Security, scroll down and clickOpen Anyway next to the Aris message, then confirm. #

Terminal : clear the download quarantine flag.

xattr -dr com.apple.quarantine /Applications/Aris.app

Only do this for a copy you downloaded from this repository's Releases page. The release also has a .zip of the same app and a SHA256SUMS file; compare with shasum -a 256 Aris-<version>.dmg. The official build includes the onboarding's sounds and its recorded greeting.

After an update macOS sees a new program, so grant the permissions again. If a switch in System Settings already shows on, turn it off and on, or remove the row with − and add Aris again.

Needs Xcode 26 or later (the full app, not only the command-line tools); no paid developer account.

git clone https://github.com/LumenJSN/Aris.git
cd Aris
./Scripts/build.sh    # the app, aris-agent and aris-tools, signed ad-hoc into build/Aris.app

Move build/Aris.app to /Applications and open it. Scripts/deploy.sh builds, checks, signs, swaps the installed copy and restarts the helper in one step (--rollback puts the previous build back); docs/BUILD.md explains every part and script.

With ad-hoc signing every rebuild is a new program to macOS, so permissions must be granted again. To keep them, sign with a free "Apple Development" certificate from Xcode › Settings › Accounts: SIGN_ID="Apple Development" ./Scripts/build.sh. The project contains no team id.

A build from source has no onboarding sounds (they are not in the repository, see OnboardingAudio); the Mac's own voice speaks the greeting.

  • Talk or type in the notch. Answers, confirm cards and running work show in the notch; history, usage, to-dos and the calendar in the side notches.
  • Your choice of brain : Claude Code (recommended), Codex, Antigravity, an API key or a local model. Every feature works on every brain.
  • Works on your Mac : Messages, Mail, Notes, Calendar, Reminders, Contacts, Finder and files (convert, merge, shrink, move, undo), music, timers, weather, stocks, maps and currency. Other apps' windows can be read and operated throughPeekaboo , downloaded on first use.
  • Sees what you point at : ask about the screen, circle something with the gesture, or pick windows to ask about.
  • Dictation into any app, with a learned dictionary and your own writing style, shown in a small pill at the bottom of the screen while the notch stays quiet.
  • Hands-free conversation , with on-device end-of-turn detection and barge-in.
  • Teammates : background workers (a clone of Aris, Claude Code in a terminal) that take a job and report back.
  • Skills in the open Agent Skills format (SKILL.md plus optionalscripts/ ,references/ ,assets/ ), so skills made for Claude Code or Codex work unchanged on every brain. They are off until you turn them on, each is checked by a static scan (SkillSpector ) and a review by your AI first, and a skill's scripts run only after you say yes.
  • Memory of you and of how tasks went, kept on your Mac: see, confirm or delete each memory in Settings › Memory.
  • Korean and English in the UI, the voice and the answers.

Aris asks for each one when a feature first needs it. Each is a single "Aris" row in System Settings › Privacy & Security (the helper and tools inside the app count as the app).

Permission What Aris does with it
Microphone hears you while you hold the talk key, in a hands-free conversation, and for its name if the wake word is on
Speech Recognition turns speech into text on the Mac (an on-device Whisper model is an option)
Accessibility finds and presses buttons and fields in other apps, types for you, reads the selection and the focused window
Screen Recording sees the screen only when you point, circle or pick a window; password apps and Aris's own windows are always left out
Full Disk Access (optional) reads Messages, Mail and Notes; never writes there
Desktop, Documents, Downloads moves, converts and restores your files when you ask
Calendars, Reminders, Contacts shows and edits events and to-dos, finds the person you name
Automation controls Music, Spotify, Notes, Finder, Messages, Mail and the terminal Claude Code runs in, for what you ask

Pick the default in Settings › AI services; saying the name first ("ask Gemini …") picks one for that request.

Brain How to add it
Claude Code (recommended) install Claude Code , runclaude once in Terminal and log in
Codex install the Codex CLI and runcodex login with your ChatGPT account
Antigravity (Gemini) install Antigravity's CLI and run agy once to log in
An API key OpenAI, Anthropic, Gemini API, OpenRouter, Groq, xAI, Mistral or DeepSeek, in Settings › AI services › API
A local model run Ollama orLM Studio on the Mac and pick it in the same list
Anything OpenAI-compatible add its address, key and model in the same list

Aris looks for the CLIs in ~/.local/bin, /opt/homebrew/bin and /usr/local/bin. Keys stay in the macOS Keychain. The voice is the Mac's own by default; ElevenLabs or OpenAI speech work with your key.

Optional: Scripts/install-claude-hooks.py (and install-agent-hooks.py for Codex and Gemini CLI) show your coding sessions in the notch and let you answer Claude Code's permission prompts there. Both are dry runs until you pass --apply, and both back up the file they change.

Your history, memory and keys stay on your Mac; your request goes only to the AI you pick (or nowhere, with a local model).

  • Stays on your Mac : history, memory notes, schedules, settings, skills and logs (in~/.config/aris and the app's container), the wake word, the end-of-turn model, the dictation dictionary and the Mac's speech recognition. No server, no account, no analytics. The helper listens on127.0.0.1 only, behind a token.
  • Goes to the AI you chose : your request, the context it needs (the time, the app in front, what you selected or pointed at, the memory notes that apply) and the results of its steps, such as a message you asked it to read. That goes to the company behind your CLI or API under their terms, or stays on the Mac with a local model.
  • Other services, only when used : weather, stocks, maps and currency lookups, a web page you ask about, ElevenLabs or OpenAI speech if you set a key, and GitHub for the first-use downloads (Peekaboo, SkillSpector and its Python runtime, the Whisper model).

Every step any brain wants to take goes through one gate in aris-agent. Reading runs without asking. Anything that writes, sends, deletes, spends or automates another app shows a confirm card that says exactly what will happen (who gets the message and its words, which file goes where) and waits for your yes; you can edit the values first. A few things are never done (paying, wiping a disk, touching the system's protected places), and a command the gate cannot read is treated as the riskiest kind. After you allow the same thing three times in a row, Aris offers to stop asking; Settings lists and revokes those.

Text from outside (a web page, an e-mail, a message, a file, a skill) is tainted: it reaches the brain as fenced, labelled data, and a turn that has read it can no longer act on its own. From then on even steps that normally run need your yes, and nothing learned in that turn is trusted as your own words. Sends are confirmed one by one with the exact text, and Aris checks the window is still the one on the card before it presses anything.

Private Apple APIs. Each is looked up at run time, with a public fallback where one exists:

  • AppKit's private glass settings on NSGlassEffectView (variant, content lensing, a custom path) and_setHasActiveAppearance: on the notch window, for the notch's look on macOS 26;
  • CoreGraphics' CGSSpace* and SkyLight'sSLSRemoveWindowsFromSpaces , to keep the notch above full-screen apps and on the lock screen (withSkyLightWindow );
  • _AXUIElementGetWindow , to match an accessibility element to its window;
  • MediaRemote (through the bundled mediaremote-adapter ) for what is playing, and DisplayServices for the screen's brightness. Any macOS update can change or remove them, and they are why Aris can't be in the App Store.
  • AppKit's private glass settings on

Not notarized : there is no Developer ID; seeInstall . #

No other app's code, artwork, sounds, fonts or prompts are included. #

Aris is not affiliated with Anthropic, OpenAI, Google or any provider it can talk to; their names belong to them and are shown only to say which brain is which.

./Scripts/build.sh                 # the app, aris-agent and aris-tools, assembled and signed into build/Aris.app
./Scripts/build.sh --agent-only    # only aris-agent and aris-tools (a minute; no Xcode project build)
bash Tests/run.sh                  # the test suite (about 400 files compiled; ends in ALL PASSED)
bash Tests/deploy-dry-tests.sh     # deploy.sh and the installers against a sandbox of fakes

The tests compile the Foundation-only parts of the app, the helper and the tools into one program and run them with a throwaway home folder; they never touch your real data, preferences, permissions or the installed Aris.

Third-party notices are in THIRD_PARTY_LICENSES and NOTICE.

Aris is released under the Apache License 2.0. Copyright 2026 Lumen.

Contributions are welcome; see CONTRIBUTING.md. Please report security problems privately as described in SECURITY.md.

── more in #ai-agents 4 stories · sorted by recency
── more on @aris 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-aris-an-open…] indexed:0 read:10min 2026-11-14 · —