by noahelhadedy
Keeps your Mac awake. With the lid closed too, and for as long as your AI agents are working. Menu bar app for macOS.
# Add to your Claude Code skills
git clone https://github.com/noahelhadedy/double-shotSee how double-shot compares with popular alternatives.
double-shot is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by noahelhadedy. Keeps your Mac awake. With the lid closed too, and for as long as your AI agents are working. Menu bar app for macOS. It has 52 GitHub stars.
double-shot's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/noahelhadedy/double-shot" and add it to your Claude Code skills directory (see the Installation section above).
double-shot is primarily written in Swift. It is open-source under noahelhadedy on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh double-shot against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
You start a long Claude Code or Codex run, close the lid, put the Mac in your bag, and the work stops. Without an external display, macOS sleeps the moment the lid closes. caffeinate and most keep-awake apps only stop idle sleep, and the ones that handle a closed lid don't know when your agents are done.
Double Shot handles both:
claude -p or codex exec count until they end. A few minutes after everything is quiet, your Mac sleeps like normal again. No setup, no hooks.It still does the simple thing too: keep your Mac awake for a while, or until you turn it off.
The first time you open Double Shot, a short welcome walks you through everything it needs, one step at a time: open at login, lid closed mode (your password once), and AI agents. Skip anything you like and turn it on later. You can see the welcome again from Settings > About.
The mug in the menu bar is empty when Double Shot is off and full when it's keeping your Mac awake.
Click the mug to open the panel:
Option click the mug to switch it on or off without opening the panel. You can swap these in Settings > General.
With Homebrew, one line and it's ready to open:
brew install --cask noahelhadedy/tap/double-shot
Or by hand:
Download DoubleShot-x.y.z.zip from Releases and unzip it.
Move Double Shot.app to your Applications folder.
Open it. The app isn't notarized by Apple yet, so the first time macOS says it "could not verify Double Shot is free of malware". Click Done, not Move to Trash. Then go to System Settings > Privacy & Security, scroll down, click Open Anyway and enter your password. Downloads from the browser need this again for each new version (the Homebrew cask clears the quarantine flag for you). Or run:
xattr -dr com.apple.quarantine "/Applications/Double Shot.app"
macOS has no public switch for "don't sleep when the lid closes". The only way is pmset disablesleep, which needs root. So the first time, Double Shot asks for your password once (panel > Lid closed > Set up, or Settings > Lid Closed) and adds one rule to /etc/sudoers.d/doubleshot. The rule lets your user run exactly these four commands without a password, nothing else:
/usr/bin/pmset -a disablesleep 1
/usr/bin/pmset -a disablesleep 0
/usr/bin/pmset -b lowpowermode 1
/usr/bin/pmset -b lowpowermode 0
Low Power Mode is only changed for battery power, so your settings for the power adapter stay as they are.
With an external display connected, a closed lid is a normal desk setup, so the lid rules (display off, Low Power Mode, heat cutoff, sleep when done) step aside.
Check whether sleep is disabled:
pmset -g | grep -i sleepdisabled
If it says 1, turn sleep back on:
sudo pmset -a disablesleep 0
If Low Power Mode stayed on, run sudo pmset -b lowpowermode 0.
brew uninstall --cask --zap double-shot.If you already deleted the app, clean up by hand:
sudo rm -f /etc/sudoers.d/doubleshot
sudo pmset -a disablesleep 0
sudo pmset -b lowpowermode 0
rm -rf ~/Library/Application\ Support/DoubleShot
defaults delete com.noahelhadedy.DoubleShot
No hooks and nothing to set up per tool. Every 10 seconds Double Shot looks for known agent processes and judges each session on its own:
claude -p, codex exec, gemini -p and the like) counts as working for as long as it runs, even while it waits on the model. If it shows no sign of life of its own for 20 minutes, it's treated as stuck.~/.claude/projects, ~/.codex/sessions, ~/.gemini/tmp and so on, watched with FSEvents). Claude Code keeps one log folder per project, so each Claude session only counts its own writes. For the other agents a write counts for all their sessions.A session sitting at the prompt, or waiting for you to approve something, does none of this, so it lets your Mac sleep. When everything has been quiet for the grace period (3 minutes by default), Double Shot lets go. Turning it off by hand during a run is respected until the agents go quiet.
Cursor Agent means the cursor-agent command line tool. The agent inside the Cursor editor isn't detected.
Want another agent supported? Add it to AgentKind.swift and open a pull request.
open -g "doubleshot://on?minutes=30" # on for 30 minutes
open -g "doubleshot://on" # on with your default duration
open -g "doubleshot://off"
open -g "doubleshot://toggle"
open -g "doubleshot://panel" # open the panel
open -g "doubleshot://settings" # open Settings
open -g "doubleshot://welcome" # show the welcome again
Needs macOS 14 or later and Xcode 16 or later, selected with sudo xcode-select -s /Applications/Xcode.app.
git clone https://github.com/noahelhadedy/double-shot.git
cd double-shot
scripts/build-app.sh # builds dist/Double Shot.app (Apple Silicon + Intel) and a zip
Quit the installed app before running a development build, since only one copy runs at a time. For quick runs: swift run. Logs:
log stream --predicate 'subsystem == "com.noahelhadedy.DoubleShot"'
scripts/make-icon.py turns a square artwork into the app icon and needs Pillow (pip3 install pillow).
Inspired by KeepingYouAwake by Marcel Dierkes and Amphetamine by William Gustafson. Double Shot is its own code, written from scratch in Swift.
MIT © 2026 Noah Elhadedy