Skip to content

Latest commit

Β 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ForwardBin Logo

ForwardBin Jarvis

Your Intelligent Desktop Drop Bin & AI-Powered Calendar Slot Scheduler
Hybrid Architecture: Blazing Native Rust Engine + Composited Translucent Desktop Widget

Website Rust Python Linux macOS License

Memory CPU Speed AI Email Calendar

🌐 Official Website: s-chudmunge.github.io/forwardbin


🌟 What is ForwardBin?

Whenever you stumble upon a 45-minute YouTube video, a dense arXiv paper, a blog post, or a live university webinar while working, bookmarking it into a browser tab graveyard means you'll never look at it again.

ForwardBin solves this. It places a sleek, always-on-top, translucent cyber-orb on your desktop.

Drag links, text, or files into the bin (or hit your global hotkey Super + Shift + F). Jarvis immediately:

  1. Inspects the Resource: Fetches live page metadata, parses hidden Slate university form fields, YouTube durations, and reading times.
  2. Deterministic Timezone Conversion: Converts source timezones (e.g. 10:00 AM EDT UTC -04:00 $\to$ 7:30 PM IST UTC +05:30).
  3. Reserves an Optimal Time Slot: Books fixed events at their exact timing, or finds a collision-free gap in your schedule.
  4. Syncs Calendars: Integrates into GNOME Calendar, Apple Calendar, and generates instant 1-Click Google Calendar links.
  5. Dispatches Light-Mode Email Briefs: Delivers a high-contrast, Gmail-styled confirmation brief with key takeaways, followed by an alert when your slot is up.

πŸ”„ How It Works

flowchart TD
    subgraph Capture["1. Instant Ingestion"]
        A["πŸ–±οΈ Drag & Drop to Desktop Orb"] --> IN["Content Parser"]
        B["πŸ“‹ Global Hotkey (Super+Shift+F)"] --> IN
        C["πŸ’» CLI (forwardbin add / clipboard)"] --> IN
    end

    subgraph Intelligence["2. Deep Content & Timezone Analysis"]
        IN --> EXT["⚑ Page & Event Extractor"]
        EXT --> DATES{"Explicit Event?"}
        DATES -- Yes --> TZ["Deterministic Timezone Converter<br>(e.g., EDT UTC-4 βž” IST UTC+5:30)"]
        DATES -- No --> AI["OpenRouter AI Brain<br>(LLaMA 3.3 70B & Heuristics)"]
        TZ --> SCHED["Slot Coordinator"]
        AI --> SCHED
    end

    subgraph CalendarSync["3. Intelligent Calendar Reservation"]
        SCHED --> FREE["Collision-Free Gap Finder"]
        FREE --> EDS["πŸ“… Local GNOME / Apple Calendar"]
        FREE --> GCAL["πŸ”— 1-Click Google Calendar Link"]
        FREE --> ICS["πŸ“Ž RFC 5545 .ics Invite"]
    end

    subgraph Notifications["4. Proactive Execution"]
        ICS --> MAIL1["βœ‰οΈ Instant Light-Mode Confirmation Brief"]
        EDS --> DAEMON["⚑ 24/7 Background Daemon (<8MB RAM)"]
        DAEMON --> TIME{"Slot Starting Now?"}
        TIME -- Yes --> MAIL2["⏰ 'Slot is Up!' Focus Email"]
        TIME -- Yes --> OSNOTIF["πŸ”” System Banner (notify-send / osascript)"]
    end
Loading

⚑ Hybrid Architecture Metrics

ForwardBin achieves the best of both worlds: maximum desktop visual fidelity and bare-metal system efficiency:

Metric 🎨 Python UI Component πŸ¦€ Rust Native Engine
Role Floating bin widget, Cairo vector graphics, cyber vortex 24/7 Background daemon, CLI dispatcher, SQLite layer
Memory Footprint ~38 MB (composited with GTK3/Cairo) ~8 MB RAM (release binary)
Idle CPU 0.0% (throttled rendering loop) 0.0% CPU (efficient asynchronous tokio sleep)
Execution Latency Instant drag-and-drop animation response < 10ms instant startup for CLI commands
Cross-Platform GTK3/Cairo on Linux, Cocoa/Tkinter on macOS 100% pure Rust (rustls TLS, bundled SQLite)

πŸ’» Cross-Platform Support

🐧 Linux (Fedora, Ubuntu, Debian, Arch, Manjaro)

  • Desktop Target: Composited translucent Cairo cyber-vortex with interactive particle physics.
  • Clipboard: Native Wayland (wl-paste) and X11 (xclip) snatching.
  • Notifications: Desktop notification banners via notify-send.
  • Calendar: Local GNOME Calendar integration via Evolution Data Server (EDS).
  • Service Management: Managed natively via systemd --user.

🍎 macOS (Apple Silicon M1/M2/M3/M4 & Intel)

  • Desktop Target: Native frameless Cocoa/Tkinter floating drop orb with pulsing Jarvis HUD.
  • Clipboard: Native macOS clipboard snatching via pbpaste.
  • Notifications: Native macOS Notification Center banners via osascript.
  • Service Management: Background daemon managed natively via macOS launchd (launchctl).

πŸš€ Download & Installation

Option 1: 1-Line Quick Install (Terminal)

Run this single command in your terminal to download and set up ForwardBin:

curl -fsSL https://raw.githubusercontent.com/s-chudmunge/forwardbin/main/install.sh | bash

Option 2: Download Standalone Installer (.run)

Download the self-extracting single-file installer from GitHub Releases:

# 1. Make it executable
chmod +x forwardbin-installer.run

# 2. Run installer (no git, cargo, or compiler required)
./forwardbin-installer.run

Option 3: Download Pre-built Release Archive (.tar.gz)

# Download from GitHub Releases, extract, and install in 1 second:
tar -xzf forwardbin-v1.0.0-linux-x86_64.tar.gz
cd forwardbin-v1.0.0
./install.sh

Option 4: Build From Source (Developers)

git clone https://github.com/s-chudmunge/forwardbin.git
cd forwardbin
./install.sh

3. Run the Interactive 30-Second Setup Wizard

Configure your notification email, timezone, and optional API keys:

forwardbin setup

πŸ› οΈ CLI Cheat Sheet

ForwardBin commands execute instantly through the compiled Rust core:

# 🎯 Schedule a URL or event directly from your terminal
forwardbin add "https://lu.ma/rust-distributed-systems"
forwardbin add "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
forwardbin add "https://arxiv.org/abs/1706.03762"

# πŸ“‹ Snatch whatever is currently copied in your clipboard
forwardbin clipboard

# πŸ“… View your forward queue
forwardbin list

# 🎨 Launch or show the floating desktop drop bin
forwardbin ui

# πŸ§™ Re-run configuration wizard
forwardbin setup

# πŸ” View current JSON configuration
forwardbin config --show

# βœ‰οΈ Send a verification test email
forwardbin test-email

# πŸ—‘οΈ Delete an item by ID
forwardbin delete 4

β˜€οΈ Clean Light-Mode Email Notifications

ForwardBin emails are designed with a modern Light Mode palette matching Google Workspace and Gmail:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 🟧 ForwardBin Jarvis                         SLOT BOOKED   β”‚
β”‚ ─────────────────────────────────────────────────────────── β”‚
β”‚ Deep Dive: Scaling Distributed Consensus in Rust            β”‚
β”‚                                                             β”‚
β”‚ [ VIDEO ]   ⏱️ Duration: 45 mins                            β”‚
β”‚                                                             β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ πŸ“… Scheduled Time Slot:                                 β”‚ β”‚
β”‚ β”‚ Wednesday, September 16 at 07:30 PM IST                 β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                             β”‚
β”‚ AI Brief:                                                   β”‚
β”‚ Engineering tech talk breaking down Raft consensus, state   β”‚
β”‚ machine replication, and zero-allocation async networking.  β”‚
β”‚                                                             β”‚
β”‚ Key Takeaways:                                              β”‚
β”‚ β€’ Leader election nuances and heartbeat optimization        β”‚
β”‚ β€’ Log compaction and snapshot replication at scale          β”‚
β”‚ β€’ Benchmarks vs Paxos under high packet loss networks       β”‚
β”‚                                                             β”‚
β”‚ [ πŸ”— Open Resource ]         [ πŸ“… View in Google Calendar ] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⌨️ System Hotkey Setup (Super + Shift + F)

Set up a global hotkey so you can highlight any link or text in your browser or PDF viewer and send it to ForwardBin in 1 millisecond:

On GNOME (Fedora / Ubuntu):

  1. Open Settings $\rightarrow$ Keyboard $\rightarrow$ Keyboard Shortcuts $\rightarrow$ Custom Shortcuts.
  2. Click Add Shortcut (+):
    • Name: ForwardBin Snatch
    • Command: /home/YOUR_USER/.local/bin/forwardbin clipboard
    • Shortcut: Super + Shift + F

On macOS:

  1. Open Automator $\rightarrow$ Create a Quick Action.
  2. Set workflow receives No Input in any application.
  3. Add Run Shell Script:
    $HOME/.local/bin/forwardbin clipboard
  4. Assign Cmd + Shift + F under System Settings $\rightarrow$ Keyboard $\rightarrow$ Shortcuts.

βš™οΈ Background Daemon Management

ForwardBin runs continuously in the background to track upcoming focus slots and trigger emails and alerts:

Linux (systemd --user)

# Check status of both services
make status
# or:
systemctl --user status forwardbin-ui.service forwardbin-daemon.service

# Restart services
make restart

macOS (launchd)

# Check running daemon status
launchctl list | grep forwardbin

# View real-time daemon logs
tail -f /tmp/forwardbin-daemon.log

🧹 Clean Uninstallation

Want to remove ForwardBin? Run the uninstaller:

./uninstall.sh
# (or: make uninstall)

# To also remove all user database records and configs:
./uninstall.sh --purge

πŸ“ Repository Structure

forwardbin/
β”œβ”€β”€ Cargo.toml            # Rust native package manifest
β”œβ”€β”€ Cargo.lock            # Exact dependency lockfile
β”œβ”€β”€ src/                  # ⚑ RUST NATIVE CORE (~8MB RAM, 0% CPU)
β”‚   β”œβ”€β”€ main.rs           # CLI router & setup wizard
β”‚   β”œβ”€β”€ daemon.rs         # 24/7 background slot monitor & email trigger
β”‚   β”œβ”€β”€ ai.rs             # Fast page inspection & OpenRouter LLM integration
β”‚   β”œβ”€β”€ calendar.rs       # Conflict-free slot finder & Google Calendar generator
β”‚   β”œβ”€β”€ db.rs             # SQLite database layer
β”‚   β”œβ”€β”€ emailer.rs        # Resend light-mode transactional emailer
β”‚   └── config.rs         # Cross-platform config & notification manager
β”‚
β”œβ”€β”€ forwardbin/           # 🎨 PYTHON COMPOSITED DESKTOP UI
β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   β”œβ”€β”€ animated_bin.py  # Cairo vector rendering, cyber vortex & particles
β”‚   β”‚   β”œβ”€β”€ macos_bin.py     # Native macOS Tkinter/Cocoa floating drop orb
β”‚   β”‚   └── floating_bin.py  # GTK3 drag-and-drop floating desktop target
β”‚   β”œβ”€β”€ content_extractor.py # Deep page metadata & Slate CMS event extractor
β”‚   β”œβ”€β”€ core.py              # Event scheduling pipeline
β”‚   └── calendar_sync.py     # GNOME Evolution Data Server (EDS) sync
β”‚
β”œβ”€β”€ bin/
β”‚   └── forwardbin        # Unified executable launcher & dispatcher
β”œβ”€β”€ systemd/              # Linux systemd user service definitions
β”œβ”€β”€ launchd/              # macOS launchd LaunchAgent definitions
β”œβ”€β”€ assets/               # Scalable desktop icons & .desktop launcher
β”œβ”€β”€ install.sh            # 1-step universal cross-platform installer
β”œβ”€β”€ uninstall.sh          # Clean uninstaller
β”œβ”€β”€ Makefile              # Developer shortcuts (build, install, restart, status)
└── pyproject.toml        # Python package metadata

πŸ“„ License

Distributed under the MIT License. See LICENSE for details.

About

Drop now. Read later. Floating desktop drop bin for macOS and Linux with desktop alerts and email briefings.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages