A terminal heartbeat for founders, PMs, and anyone who needs a 30-minute pulse on what matters.
Project description
heartbeat-cli
A terminal heartbeat for founders, PMs, and anyone who needs a 30-minute pulse on what actually matters.
╭─ heartbeat · pulse @ 14:30 · Tuesday 24 Mar ──────────────────╮
│ ▸ run at 14:30:02 · next in 30 min │
╰────────────────────────────────────────────────────────────────╯
🔴 ACTION NEEDED (3)
✉ Priya Mehta (Kapoor & Associates) · unanswered 3h 14m
Re: Q1 Compliance Automation — delivery timeline query
⛔ PharmaCo pipeline · document ingestion blocked
Reported by Rohan · awaiting vendor API credentials
⏰ AIC grant report · deadline in 18h
Assigned to Tanvi · last update 6h ago
📋 FYI (3)
✓ InsureRight portal — v2 search module shipped
📅 BD call · TechMahindra · starts in 45 min · Google Meet
💬 #kapoor-proj · 4 new messages since last pulse
sources: gmail · gcal · slack · notion · 0.8s
Install
pip install heartbeat-cli
Setup
pulse setup
Walks you through connecting Gmail, Google Calendar, Slack, and Notion. All tokens are stored in your OS keychain — never in plaintext.
Usage
# Run once — get your digest now
pulse
# Run as daemon — fires every 30 min while you're active
pulse --watch
# See what's connected
pulse status
# Show config
pulse config
Connectors
| Connector | What it surfaces |
|---|---|
| Gmail | Unanswered client emails > 2h |
| Google Calendar | Meetings starting < 60 min, deadlines < 24h |
| Slack | Direct mentions, DMs, watched channel activity |
| Notion | Blocked tasks, tasks due soon with no recent update |
Triage logic
Two tiers only — no LLM on the urgency path:
🔴 Action needed: Client email unanswered > 2h · task blocked · deadline < 24h · Slack mention
📋 FYI: Completed tasks · upcoming meetings · routine updates
Rule-based deliberately. A digest that fires 48 times a day must be fast, cheap, and produce zero false urgency.
Requirements
- Python 3.10+
- macOS / Linux
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file heartbeat_cli-0.1.0.tar.gz.
File metadata
- Download URL: heartbeat_cli-0.1.0.tar.gz
- Upload date:
- Size: 21.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f989caec41ce28c3ea9b4ed91ec819ae256b6d3bcd8449f9971479468baccac5
|
|
| MD5 |
c47218bd8301762fb781372ea32ecdc8
|
|
| BLAKE2b-256 |
cbe8aa9f597c4afc7834a410391964ad7ae1537a911212beb09e91357d2ca350
|
File details
Details for the file heartbeat_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: heartbeat_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
955fe8515952d7e27fb6b0d46aba2f54f6358659aa93547a642033d3093a75ca
|
|
| MD5 |
53d0539af1a8d4a3d55aef81b5d25f13
|
|
| BLAKE2b-256 |
8593ab0e6ab965b2dc6b902cd7ce022df4377ce66d1ae758aca6951168279e3d
|