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
Metadata
Release files for heartbeat-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| heartbeat_cli-0.1.0.tar.gz | 21.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| heartbeat_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.1 kB
Release files / heartbeat_cli-0.1.0.tar.gz
| Download URL | heartbeat_cli-0.1.0.tar.gz |
|---|---|
| Size | 21.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f989caec41ce28c3ea9b4ed91ec819ae256b6d3bcd8449f9971479468baccac5
|
|
BLAKE2b-256 checksum How to use checksums |
cbe8aa9f597c4afc7834a410391964ad7ae1537a911212beb09e91357d2ca350
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / heartbeat_cli-0.1.0-py3-none-any.whl
| Download URL | heartbeat_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 25.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
955fe8515952d7e27fb6b0d46aba2f54f6358659aa93547a642033d3093a75ca
|
|
BLAKE2b-256 checksum How to use checksums |
8593ab0e6ab965b2dc6b902cd7ce022df4377ce66d1ae758aca6951168279e3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Security for heartbeat-cli 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.