Releases: miftahganzz/Pulse
Release list
Pulse v1.0.5 — Docker Null Ports Decoding Fix & Error State Resilience
Pulse v1.0.5 (Build 105)
This release addresses an issue where Docker containers without public port mappings caused Swift decoding failures and falsely reported Docker as not detected.
🐛 Bug Fixes & Resilience
- Docker Null Ports Decoding Fix: Fixed an issue where containers without exposed public ports (e.g., Supabase internal containers) had
portsserialized asnullin JSON, causing Swift'sJSONDecoderto fail and the UI to report "Docker Not Detected". - Resilient Container Decoding in macOS App:
DockerContainerItemandDockerStatusResponsenow defensively decode null or absent ports, strings, and container arrays across all agent daemon versions. - Docker Error State & Retry: Replaced ambiguous "Docker Not Detected" fallback with an explicit error card displaying the error description and a Retry button whenever a network or decoding failure occurs.
- Auto-Update Binary Availability: Attached
pulse-agent-linux-amd64andpulse-agent-linux-arm64assets to GitHub Releases for zero-friction self-updating viapulse update.
📦 Downloads & Verification
| Architecture | Download Link | Notes |
|---|---|---|
| Universal 2 (Recommended) | Pulse-1.0.5-Universal.dmg | Intel & Apple Silicon |
| Apple Silicon | Pulse-1.0.5-arm64.dmg | M1 / M2 / M3 / M4 |
| Intel | Pulse-1.0.5-x86_64.dmg | 64-bit Intel Mac |
| Standard DMG | Pulse-1.0.5.dmg | Universal binary |
| Linux x86_64 Agent | pulse-agent-linux-amd64 | Linux daemon |
| Linux ARM64 Agent | pulse-agent-linux-arm64 | Linux daemon |
Pulse v1.0.4 — Security Hardening, Rate Limiting & Biometric Gate
Pulse v1.0.4 (Build 104) — Comprehensive Security Hardening & Zero-Trust
This release brings enterprise-grade zero-trust security hardening across both the Linux Pulse Agent and the macOS Pulse App.
🛡️ Pulse Agent (Linux Daemon)
- Brute-Force & Port Scanning Defense: Built-in sliding-window rate limiter blocks malicious IPs automatically for 15 minutes after 5 consecutive failed authentication or pairing attempts.
- Pairing Session Lockout: 6-digit pairing sessions are immediately revoked and session files destroyed upon 5 invalid attempts, completely preventing PIN brute-forcing.
- Cross-Site WebSocket Hijacking (CSWSH) Defense: Enforces strict origin checking on WebSocket handshakes to prevent browser-based session hijacking.
- Security Headers & Strict File Permissions: Automatically serves HSTS, CSP (
default-src 'none'),X-Frame-Options: DENY, andX-Content-Type-Options: nosniff. - Tamper-Resistant Action Audit Log: Every action execution (systemd service restarts, Docker container actions, system runbooks) is recorded in an append-only
$PULSE_DIR/audit.logwith timestamp, client identity, and execution status. pulse doctorSecurity Audits: Audits file permissions onagent.jsonandkey.pemto ensure strict0600permissions.
🍏 Pulse macOS App
- TOFU TLS Certificate Pinning: Implements Trust-On-First-Use (TOFU) SHA-256 certificate fingerprint pinning securely stored in macOS Keychain. Warns and halts connection if the remote TLS certificate changes or is intercepted.
- Biometric Security Gate (Touch ID / Apple Watch): Destructive and high-impact operations (system reboots, container kill, service stops) can now require Touch ID / Apple Watch / Mac Password confirmation before execution.
- Clipboard Token Auto-Clearing: Automatically purges copied bearer tokens and pairing codes from the macOS pasteboard after 60 seconds.
- Dedicated Security Settings Tab: New Security preference tab to configure biometric protection, clipboard security, and certificate pinning policies.
📦 Downloads & Verification
| Architecture | Download Link | Notes |
|---|---|---|
| Universal 2 (Recommended) | Pulse-1.0.4-Universal.dmg | Intel & Apple Silicon |
| Apple Silicon | Pulse-1.0.4-arm64.dmg | M1 / M2 / M3 / M4 |
| Intel | Pulse-1.0.4-x86_64.dmg | 64-bit Intel Mac |
| Standard DMG | Pulse-1.0.4.dmg | Universal binary |
Pulse v1.0.3 — Redesigned Add Server with Immediate Tailscale & Cloudflare Options
What's New in Pulse v1.0.3 (Build 103)
- Add Server UI Redesign: Prominent Method pickers (
Direct IP,Cloudflare Tunnel,Tailscale) and Mode pickers (Root (sudo)vs.Non-Root (User Mode)) right on the primary screen. No more hidden multi-step wizard! - Inline 1-Line Setup: Instant copy button for 1-line setup command with dynamic helper badge and server connection fields all in one clean view.
- Universal Non-Root Support: Dedicated standalone non-root scripts for Direct IP, Tailscale, and Cloudflare Tunnel.
- Port Auto-Adjustment: Automatically toggles between port 443 (Cloudflare) and port 8443 (Direct IP / Tailscale).
Pulse v1.0.2 — Non-Root User Mode & Seamless 1-Command Setup
Pulse v1.0.2 (Build 12)
Welcome to Pulse v1.0.2! This release brings full Non-Root (User Mode) support across the one-command installer, daemon runtime, CLI, macOS application, and documentation. Non-root users without sudo access can now run Pulse Agent completely standalone on any Linux VPS or shared host.
What's New in v1.0.2
1. Non-Root (User Mode) for All Connection Methods
- Direct IP / LAN:
- Automatically runs in User Mode when
$EUID != 0. - Installs to
~/.local/bin/pulse-agent&~/.pulse/agent.json. - Auto-configures user-level systemd daemon (
systemctl --user) with lingering, or crontab@rebootbackground fallback. - Perintah:
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/install.sh | bash
- Automatically runs in User Mode when
- Cloudflare Tunnel (
setup-cloudflare.sh):- 100% Zero-Root & Zero-Port: Cloudflare Tunnel works via outbound HTTPS/QUIC, requiring zero open firewall ports and no root privileges!
- Automatically downloads standalone
cloudflaredto~/.local/bin/cloudflared. - Runs quick tunnel (
trycloudflare.com) in the background with user crontab@rebootautostart. - Perintah:
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-cloudflare.sh | bash
- Tailscale (
setup-tailscale.sh):- Non-root users are no longer blocked by
fail "Run with sudo". - Detects existing Tailscale installations and IP addresses (
100.x.y.z), automatically binding Pulse Agent in user space without requiringsudo. - Perintah:
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-tailscale.sh | bash
- Non-root users are no longer blocked by
2. Redesigned Add Server Dialog (⌘N)
- Separate Method & Mode Selectors: Fixed the squished vertical
Modetext by cleanly separating the Method (Direct IP,Cloudflare Tunnel,Tailscale) and Mode (Root (sudo)vs.Non-Root) pickers with horizontal fixed labels and full-width segmented controls. - Smart Auto-Detection: Typing a Cloudflare domain automatically switches the method to Cloudflare Tunnel and sets port
443. Typing a100.xIP automatically selects Tailscale. - Dynamic One-Line Command: The copyable terminal command and helper guidance badge immediately update based on the selected method and privilege mode.
3. CLI Mode Auto-Detection
- The unified
pulsecommand (pulse restart,pulse stop / start,pulse logs -f,pulse update, andpulse uninstall) automatically senses root vs. user mode. - Non-root users can stream logs (
journalctl --user), restart user services, and self-update without ever needingsudo. pulse doctornow checks user-mode systemd services without false permission warnings.
4. Sparkle 2 Auto-Update Feed
- Appcast feed updated for v1.0.2 (Build 12) with cryptographic Ed25519 signatures for seamless auto-updates.
Downloads & Assets
| Package | Platform / Architecture | Description |
|---|---|---|
| Pulse-1.0.2-Universal.dmg | macOS 13+ (Universal 2) | Native Apple Silicon + Intel installer |
| Pulse-1.0.2-arm64.dmg | Apple Silicon (M1/M2/M3/M4) | Optimized for Apple Silicon Macs |
| Pulse-1.0.2-x86_64.dmg | Intel x86_64 | 64-bit Intel Mac installer |
| Pulse-1.0.2.dmg | Default Installer | Universal installer |
| pulse-agent-linux-amd64 | Linux x86_64 | Static daemon binary for 64-bit Linux |
| pulse-agent-linux-arm64 | Linux ARM64 / aarch64 | Static daemon binary for ARM Linux |
Quick Setup Matrix (Linux)
| Method | Root Mode (sudo) |
Non-Root User Mode (No sudo) |
|---|---|---|
| Direct IP / LAN | curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/install.sh | sudo bash |
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/install.sh | bash |
| Tailscale | curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-tailscale.sh | sudo bash |
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-tailscale.sh | bash |
| Cloudflare Tunnel | curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-cloudflare.sh | sudo bash |
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-cloudflare.sh | bash |
Pulse v1.0.1 — Unified CLI, Clean Terminal UX & Auto-Reconnect
Pulse v1.0.1 (Build 11)
Welcome to Pulse v1.0.1! This release introduces the unified pulse command-line tool for Linux hosts with clean borderless terminal UX, real-time network offline detection with auto-reconnect, and enhancements to live log streaming.
What's New in v1.0.1
1. Unified Pulse CLI (pulse)
- All-in-One CLI: Manage agent health, pairing, private networks, and daemon lifecycle directly via
/usr/local/bin/pulse. - Modular Subcommands:
pulse/pulse status: Real-time daemon state, listen port, LAN IP, Tailscale IP, Public IP, active pairing code, and 1-click deep link.pulse pair [code]: Generate temporaryXXX-XXXpairing code (valid 10 mins) to link from Mac without pasting long tokens.pulse tailscale: Detect Tailscale node, display MagicDNS, or run 1-command installer (sudo pulse tailscale install).pulse cloudflare: Inspect cloudflared status, generate ingress configs, and guide zero-port tunnel setup.pulse logs -f: Stream live daemon journalctl logs directly in terminal.pulse update: In-place self-updater from GitHub Releases.pulse doctor: Full health check for TLS, firewall, socket, and permissions.sudo pulse restart / start / stop / uninstall: Manage background service.
2. Clean & Minimal Terminal UX
- Removed all heavy ASCII/box-drawing borders for a clean, borderless terminal appearance that doesn't wrap or misalign across diverse SSH terminals.
3. Network Offline Detection & Auto-Reconnect
- Integrated
NWPathMonitoron macOS to monitor network connectivity in real time. - Displays explicit offline banners with instructions when network path is lost.
- Automatically reconnects all server WebSocket streams the moment connectivity is restored.
4. Live Log Streaming Polish
- Made log streaming connection-state aware so opening logs while connecting waits smoothly instead of failing with timeout errors.
- Prioritizes
pulse-agent.serviceas default unit so logs appear instantly. - Added idle waiting state indicator when streaming units with quiet logs.
Downloads & Assets
| Package | Platform / Architecture | Description |
|---|---|---|
| Pulse-1.0.1-Universal.dmg | macOS 13+ (Universal 2) | Native Apple Silicon + Intel installer |
| Pulse-1.0.1-arm64.dmg | Apple Silicon (M1/M2/M3/M4) | Optimized for Apple Silicon Macs |
| Pulse-1.0.1-x86_64.dmg | Intel x86_64 | 64-bit Intel Mac installer |
| Pulse-1.0.1.dmg | Default Installer | Universal installer |
| pulse-agent-linux-amd64 | Linux x86_64 | Static daemon binary for 64-bit Linux |
| pulse-agent-linux-arm64 | Linux ARM64 / aarch64 | Static daemon binary for ARM Linux |
Quick Agent Installation (Linux)
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/install.sh | sudo bashPulse v1.0.0 — Live Logs, Telegram Alerts, Storage Analyzer & Runbooks
Pulse v1.0.0 (Build 10)
Welcome to the major 1.0.0 milestone release of Pulse! This release brings enterprise-grade stability, live log streaming, multi-recipient Telegram outbound alerts, storage breakdown & 1-click cleaners, maintenance runbooks, and per-process network/disk I/O monitoring.
What's New in v1.0.0
1. Live Log Viewer & Streaming (⌘L)
- Sub-second WebSocket log streaming: Stream live server logs straight to your Mac without an SSH session.
- Systemd Journal & Docker Containers: Seamlessly switch between any systemd unit service (
journalctl -u <unit> -f) and Docker container stdout/stderr. - Interactive Console: Real-time keyword filtering, auto-scroll toggle, pause/resume, and 1-click clipboard export.
2. Outbound Alerts: Telegram Integration
- Direct Bot API push: Receive instant push notifications on Telegram 24/7 without third-party proxies or cloud relays.
- Simple 3-step setup: Add Bot Token from
@BotFather, enter recipient user/chat IDs, and test with one click. - Multi-recipient broadcast: Route server incidents to multiple admin user IDs and ops channels simultaneously.
- Smart anti-flapping: Built-in consecutive check gates prevent alert storms.
3. Disk Space Analyzer & Safe 1-Click Cleaners (⌘U)
- "Where Did My Storage Go?": Instant visual breakdown of disk consumption across
/var/log,/var/lib/docker,/var/cache,/tmp, and systemd journals. - 1-Click Safe Cleaners:
Vacuum Journals: Safely removes systemd journal logs older than 3 days.Docker Prune: Cleans stopped containers, dangling images, and build caches without disturbing running containers.Clean APT Cache: Frees gigabytes from/var/cache/apt/archiveson Debian/Ubuntu.
4. Maintenance Runbooks (⌘R)
- Trigger essential operational tasks directly from macOS with a live terminal output console:
- Reload Web Server: Gracefully reload Nginx, Caddy, or Apache without dropping connections.
- Flush DNS Cache: Clear local
systemd-resolved/nscdcache. - Check System Updates: Inspect available security updates without installing.
- Drop Page Cache: Sync buffers and safely reclaim filesystem page cache (
echo 3 > /proc/sys/vm/drop_caches).
5. Process Network & Disk I/O
- Live Bandwidth Rates: Disk read and write throughput per process (KB/s or MB/s) parsed directly from Linux
/proc/[pid]/io. - Open Socket Tracking: View open socket file descriptors per process to catch connection leaks early.
6. Menu Bar Live Metrics Ticker
- Toggle live
CPU xx% RAM xx%display directly in the macOS menu bar status item from Settings.
7. In-App Documentation & Guides
- Expanded in-app docs (
⌘/) covering Telegram Bot setup, one-line installation scripts, Tailscale zero-port mesh, and Cloudflare tunnels.
Downloads & Assets
| Package | Platform / Architecture | Description |
|---|---|---|
| Pulse-1.0.0-Universal.dmg | macOS 13+ (Universal 2) | Native Apple Silicon + Intel installer |
| Pulse-1.0.0-arm64.dmg | Apple Silicon (M1/M2/M3/M4) | Optimized for Apple Silicon Macs |
| Pulse-1.0.0-x86_64.dmg | Intel x86_64 | 64-bit Intel Mac installer |
| Pulse-1.0.0.dmg | Default Installer | Universal installer |
| pulse-agent-linux-amd64 | Linux x86_64 | Static daemon binary for 64-bit Linux |
| pulse-agent-linux-arm64 | Linux ARM64 / aarch64 | Static daemon binary for ARM Linux |
Quick Agent Installation (Linux)
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/install.sh | sudo bashPulse v0.9.0 — Tags, Setup Scripts & All-Linux Support
What's New in v0.9.0
🏷️ Server Tags & Groups
- Servers in the sidebar now group by environment: Production 🔴, Staging 🟠, Development 🔵, Other
- Set the environment when adding a server, or right-click → Edit Tags & Environment...
- Free-form custom tags appear as chips in each server row
- Tag editor: color-coded environment buttons + add/remove tag chips
⚡ One-Command Setup Scripts
Pick your connection method and run a single command:
# Direct IP / LAN
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/install.sh | sudo bash
# Tailscale (zero open ports — recommended)
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-tailscale.sh | sudo bash
# Cloudflare Tunnel (zero open ports)
curl -fsSL https://raw.githubusercontent.com/miftahganzz/Pulse/main/agent/pulse-agent/scripts/setup-cloudflare.sh | sudo bash🐧 All Linux Support
Supported distros: Debian, Ubuntu, RHEL, CentOS, Fedora, Arch Linux, Alpine Linux, openSUSE, Void Linux + any systemd-based distro.
Firewall auto-config: UFW, firewalld, or iptables.
🔢 XXX-XXX Pairing Code
Format changed from 653557 → 653-557 (easier to read and type).
📖 In-App Docs (? button)
Updated with all new setup methods, XXX-XXX pairing section, and full distro list.
macOS 13.0+ required.
| File | Architecture |
|---|---|
Pulse-0.9.0-Universal.dmg |
Universal (Apple Silicon + Intel) — recommended |
Pulse-0.9.0-arm64.dmg |
Apple Silicon only |
Pulse-0.9.0-x86_64.dmg |
Intel only |
Pulse-0.9.0.dmg |
Same as Universal |
Pulse v0.8.0 - Security Inspector, Sparkle 2, Launch at Login & Private Networks
Pulse v0.8.0
Pulse v0.8.0 delivers a major release featuring the new Network & Open Ports Auditor (Security Inspector), native Sparkle 2 Auto-Updater, macOS Launch at Login, pulse:// 1-Click Server Onboarding, Cinematic Pulse Logo Launch Animation & First-Time Interactive Feature Tour, official zero-port private network support (Tailscale & Cloudflare Tunnels), and Pixel-Perfect Apple HIG DMG Installers with architecture-specific downloads.
🎨 Apple-Grade DMG Installers with Native Drag-and-Drop
- High-DPI Styled Installers: Professional minimalist dark canvas DMG window with native Application folder shortcuts and high-resolution Retina artwork.
- Dedicated Architecture Packages:
Pulse-0.8.0-arm64.dmgfor Apple Silicon Macs (M1 / M2 / M3 / M4)Pulse-0.8.0-x86_64.dmgfor Intel 64-bit MacsPulse-0.8.0-Universal.dmgUniversal 2 binary running natively on all Macs
⚡ Cinematic Pulse Logo Launch Motion & Interactive Feature Tour
- Pure Pulse Logo Motion: Pure, cinematic dark startup sequence featuring the iconic Pulse squircle, expanding soft sonar rings, neon ECG heartbeat sweep, and gentle cardiac pulse bloom—with zero clutter or text labels.
- First-Time Interactive Welcome Guide: On first launch, smoothly unfolds into an Apple-grade interactive 4-card tour explaining core capabilities (Live Telemetry, Zero-Inbound mTLS/Tailscale/Cloudflare, Port Auditor, and macOS Integrations) with page navigation and 1-click server onboarding.
- Calm & Respectful Pacing: Balanced cinematic timing with click-to-skip support, plus a toggle and replay button under Settings > General.
🛡️ Network & Open Ports Auditor (Security Inspector)
- Live Socket Scanner: Parses active TCP/UDP listening sockets on Linux (
ss -tlpn -ulpn) and macOS (lsof), reporting process name, PID, and local binding addresses. - Exposure Classification: Automatically tags sockets as Public (
0.0.0.0), Localhost (127.0.0.1), or Private (Tailscale100.64.0.0/10and RFC 1918 subnets). - Sensitive Database Exposure Alerts: Warns immediately if databases or management services (Redis, PostgreSQL, MySQL, MongoDB, Docker API) are listening on
0.0.0.0. - Firewall Auditor: Displays live host firewall status (UFW / iptables / pf) and default incoming policy.
- macOS Security Tab: KPI summary cards, critical warning callouts with 1-click filter, and real-time socket search.
✨ Pro-Grade macOS Experience
- Sparkle 2 Auto-Updater: Native background check and release channel updates with zero user friction (
SPUStandardUpdaterController+appcast.xml). - Launch at Login: Deep integration with native macOS 13+
SMAppService.mainApp(auto-syncs with macOS System Settings Login Items). - Custom URL Scheme (
pulse://): 1-Click Server Onboarding viapulse://add?name=...&host=...&port=...&token=...pre-fills the connection sheet. - Quick Shortcut: Press
⌘Nfrom anywhere in the app to open the Add Server sheet. - Pixel-Perfect Apple HIG Icon: Standardized icon to official Apple Human Interface Guidelines specification (824x824 px canvas on 1024x1024 with dual-layer drop shadows).
🔒 Zero-Port Private Networks
- Tailscale: Connect directly via encrypted WireGuard mesh on
100.x.y.zwith port 8443 completely blocked from the public internet. - Cloudflare Tunnel (
cloudflared): Connect via custom domain (pulse.yourdomain.com) on port 443 with zero incoming open firewall ports.
📦 Artifacts & Checksums
| File | Target Platform | SHA-256 Checksum |
|---|---|---|
Pulse-0.8.0-arm64.dmg |
Apple Silicon (M1/M2/M3/M4) | b898d4e7ef5f5168c85e8603e0404fb75dc867161130d3aa083fccb3e44d0da7 |
Pulse-0.8.0-x86_64.dmg |
Intel 64-bit Core/Xeon | f17fb69a043242fda6885055f112194391cf334901afec9900ec995ca7cc5995 |
Pulse-0.8.0-Universal.dmg |
Universal 2 (Apple Silicon & Intel) | 4f986fb2646de3256c01758bc9dcf60fd6197029c6b93d1bf655791ba8fa9543 |
Pulse-0.8.0.dmg |
Default Universal Installer | 4f986fb2646de3256c01758bc9dcf60fd6197029c6b93d1bf655791ba8fa9543 |
pulse-agent-linux-amd64 |
Linux x86_64 | c0959853bf629697ab93a2351067be9279ab27ea6b3d037d4c80bf42c1b6634a |
pulse-agent-linux-arm64 |
Linux ARM64 | 46bfb0d7512eacfd86a17bed3ab92c1e57b678e20aac9da94486fb134ca8dffd |
Pulse v0.7.0 - Initial Official Release
🎉 Pulse v0.7.0 Official Release
Pulse is a native, lightweight infrastructure monitoring & auto-remediation application for macOS and Linux VPS.
📦 What's Included:
- Pulse-0.7.0.dmg: Drag-and-drop macOS App installer (Universal Apple Silicon & Intel).
- Pulse-0.7.0.pkg: Standard macOS Package installer.
- pulse-agent-linux-amd64 / arm64: Standalone static Linux monitoring binaries (< 15 MB RAM).
✨ Features:
- Direct P2P TLS & WebSocket encryption (zero cloud servers/telemetry).
- 1-Command Automated Installer & 6-Digit Numeric Pairing Code.
pulse-agent doctorautomated VPS diagnostics.- Real-time container monitoring (Docker), Systemd, PM2, databases (PostgreSQL, Redis, MySQL, MongoDB).
- Graph dependency mapping, outage cascade grouping, and controlled auto-remediation safety gates.