Keep the dates that matter visible, without filling your calendar.
Countpane is a private, native Mac app for deadlines, anniversaries, trips, launches, and every other date you do not want to lose track of. It lives in the macOS menu bar, where its calendar icon opens the management window; create a countdown once, then keep it on your desktop as a small, always-visible widget while you work.
- Install with Homebrew
- Why Countpane
- What you can do
- Product tour
- Get started
- Privacy and backups
- Updates
- Build from source
- Releases and quality
- Contributing
- Security and license
Install Countpane with:
brew tap sashplatonov/apps
brew install --cask countpaneOr install the fully qualified cask in one line:
brew install --cask sashplatonov/apps/countpaneThen open Countpane from Applications. Countpane stays in the menu bar instead of the Dock; click its calendar icon whenever you want to reopen the management window. To update later:
brew update
brew upgrade --cask countpaneThe screenshots below use isolated, English-only mock countdowns. They show the complete product surface at a glance: the dashboard, editor, settings, desktop widget, and the wide dashboard composition used for the social preview.
All committed images use synthetic data. For menu-bar reopening, VoiceOver, multi-display, and other runtime proof, follow the manual macOS verification checklist.
Calendars are excellent for appointments. Countpane is for the dates you want to keep in view between appointments: a visa deadline, a birthday, a move, a product launch, or a long-awaited trip.
- Keep upcoming dates visible in independent, rounded desktop widgets.
- See the remaining time in plain language, from days to years and months.
- Work privately: no account, cloud sync, analytics, or server is required.
- Focus on what is next with search, pinning, sorting, and a dedicated Next Up view.
- Create active and completed countdowns with notes, symbols, and individual themes.
- Choose compact Rows or a responsive Card Grid for the main dashboard.
- Show or hide a floating widget for each active countdown.
- Set urgency stages so approaching dates are easy to spot.
- Pin important items, shift dates quickly, mark items complete, restore them, or undo the last change.
- Start Countpane at login and show widgets without opening the main window.
- Use light, dark, or adaptive application themes.
- Export a backup before moving to another Mac, then import it when needed.
- Click the Countpane calendar icon in the menu bar and choose Show Main Window.
- Select Add Countdown.
- Give it a title and target date; add a note, symbol, or colour if helpful.
- Enable its desktop widget to keep the countdown visible above other windows.
- In Settings, adjust urgency stages, appearance, Launch at Login, and automatic update checks.
- Use Export in Settings before changing Macs or making a major edit to your list.
Your countdowns stay on your Mac at:
~/Library/Application Support/Countpane/countpane.sqlite3
Countpane has no account or analytics service. Automatic update checks are optional; they query the public GitHub Releases API and send only the product version. Titles, dates, notes, and backup files are never transmitted.
Runtime state is stored in a local SQLite database. Backups use Countpane's current versioned JSON interchange format. Import checks the format, duplicate identifiers, required titles, and urgency settings before replacing the local list. Unsupported backup formats are rejected rather than changed silently.
📝 Keep exported backups somewhere you control, such as an encrypted drive or your own private cloud folder.
Countpane can check for a new version automatically or when you ask it to. For a Homebrew installation, Install Update runs a bounded Homebrew update outside the app's interface. For a DMG installation, Countpane opens the newest release page.
If Homebrew is unavailable, the tap has not propagated yet, the network is offline, or GitHub rate-limits a request, Countpane explains the problem without exposing your data.
Requirements: macOS 15+ and Xcode 16+.
git clone https://github.com/sashplatonov/countpane.git
cd countpane
swift test
./Scripts/build-app.sh 1.0.0
open dist/Countpane.appBuild a local DMG:
./Scripts/build-dmg.sh 1.0.0Build a native local DMG when testing a specific Mac architecture:
./Scripts/build-dmg.sh 1.0.0 arm64
./Scripts/build-dmg.sh 1.0.0 x86_64GitHub Actions keeps normal feedback fast with one native Apple Silicon test
lane and a Universal app/cask validation lane. A semantic tag such as
v1.0.0 runs the full native arm64 and x86_64 test matrix, builds signed
native DMGs and checksums, publishes both to a GitHub Release, and generates an
architecture-aware Homebrew cask. The Universal CI build is compile and
packaging compatibility coverage; native Intel runtime proof belongs to the
release workflow.
git tag v1.0.0
git push origin v1.0.0To create and push the next release tag interactively, from a clean checkout run:
./Scripts/create-and-push-tag.shThe script prints the current reachable tag, asks for a new vMAJOR.MINOR.PATCH
tag, checks local and remote duplicates, creates an annotated tag, and pushes it
to origin. Use ./Scripts/create-and-push-tag.sh --dry-run to validate the
input without creating or pushing a tag.
Packaging uses Hardened Runtime and ad-hoc signing. A Developer ID certificate and Apple notarization are still required for distribution without Gatekeeper prompts; until they are configured, DMG and Homebrew distribution are experimental.
For release maintainers, see the release checklist.
Report vulnerabilities privately according to SECURITY.md. Never attach unredacted backups to a public issue.
Countpane is available under the MIT License.
See CONTRIBUTING.md for local checks, packaging commands, synthetic test-data rules, and the review workflow.




