Skip to content

Github · GitHub Repository Radar

video-db bloom

An open source, agentic Loom alternative. Record locally, make recordings AI-ready, and run workflows on top

Stars

231

Forks

36

Watchers: 231

Repository Radar Score

37 / 100

Growth

7d
+0
30d
+0
%
0.0%

Not enough metric snapshots yet to chart growth for this repository.

Score breakdown

  • popularity 42
  • growth 0
  • activity 35
  • freshness 100
  • community 74

Need help integrating this stack?

Our team builds with modern open-source stacks. Tell us what you are shipping.

Get a quote →

Bloom

An open source, agentic Loom alternative.

Record locally. Make recordings AI-ready. Run workflows on top.

Record → Query → Automate

Install · Features · Docs · Report Bug


What is Bloom?

Bloom is a local-first screen recorder built for agentic workflows.

  • Record locally — No lock-in, your files stay yours
  • Upload to VideoDB — Automatic cloud sync with AI processing.
  • Find any moment — Transcripts, visual embeddings, metadata.
  • Let agents work on your recordings — Query via APIs or agent frameworks like Claude Code and access your recordings data.

Recordings are no longer files, they are inputs for AI.


Demo

Bloom.Demo.mp4

Installation

Run this in your terminal to install Bloom:

curl -fsSL https://artifacts.videodb.io/bloom/install | bash

This will automatically detect your Mac architecture, download the right build, and install it to /Applications.

Manual install
  1. Mount the DMG and drag Bloom to your Applications folder
  2. Open Terminal and run xattr -cr /Applications/Bloom.app
  3. Launch the app from Applications or Spotlight

Supported on macOS and Windows (pre-built installer available for macOS). Linux support coming soon.


Features

Feature Description
No subscription Pay only for usage
Local-first Record locally, no lock-in
AI-ready Search, summarize, extract
Screen recording Capture screen, microphone, and system audio via VideoDB Capture SDK
Camera overlay Draggable camera bubble during recording
Floating bar Always-on-top control bar that never blocks your apps
Multi-monitor Display picker to choose which screen to record
Library Browse, search, play, rename, and download recordings
Transcription Automatic transcript generation with subtitled playback
Chat with video Ask questions about your recording via VideoDB Chat
Share One-click shareable link for any recording
Keyboard shortcut Cmd+Shift+R to start/stop recording from anywhere
Open source Fully customizable UI layer

Architecture

Bloom = UI layer (open source)
VideoDB = Intelligence layer (cloud)
graph LR
    subgraph EA["  Electron App  "]
        R["Renderer UI"]
        M["Main Process"]
        DB[("SQLite")]
        R -->|IPC| M
        M --> DB
        M --> SDK
    end

    subgraph VS["  VideoDB SDK  "]
        SDK["Node SDK"]
        CC["CaptureClient"]
        WS["WebSocket"]
        API["Connection API"]
        BIN["Native Binary"]
        SDK --> CC & WS & API
        CC --> BIN
    end

    subgraph LC["  Local Capture  "]
        SC["Screen Capture"]
        MIC["Microphone"]
        SA["System Audio"]
        BIN --> SC & MIC & SA
    end

    subgraph VC["  VideoDB  "]
        UPLOAD["Upload & Export"]
        STREAM["HLS Streaming"]
        IDX["Indexing"]
        TRX["Transcription"]
        UPLOAD --> STREAM
        IDX --> TRX
    end

    BIN -->|"upload chunks"| UPLOAD
    WS -->|"session events"| UPLOAD
    API -->|"index / transcribe"| IDX

    classDef orange fill:#2e1a08,stroke:#EC5B16,stroke-width:1.5px,color:#f5a36a
    classDef amber  fill:#2e2008,stroke:#E8A317,stroke-width:1.5px,color:#f5d080
    classDef red    fill:#2e0d08,stroke:#FF4000,stroke-width:1.5px,color:#ff8a60
    classDef green  fill:#0d2e1a,stroke:#4CAF50,stroke-width:1.5px,color:#8ed4a0
    classDef db     fill:#1a1208,stroke:#EC5B16,stroke-width:1.5px,color:#f5a36a

    class R,M orange
    class SDK,CC,WS,API,BIN amber
    class SC,MIC,SA red
    class UPLOAD,IDX,TRX,STREAM green
    class DB db

    style EA fill:#1a0e04,stroke:#EC5B16,stroke-width:2px,color:#f5a36a
    style VS fill:#1a1504,stroke:#E8A317,stroke-width:2px,color:#f5d080
    style LC fill:#1a0804,stroke:#FF4000,stroke-width:2px,color:#ff8a60
    style VC fill:#071810,stroke:#4CAF50,stroke-width:2px,color:#8ed4a0
Loading

Recording flow: The app creates a CaptureClient which spawns a native binary to capture screen, mic, and system audio. Chunks are uploaded to VideoDB Cloud in real-time. A WebSocket connection delivers session events (started, stopped, exported) back to the app.

Post-recording: Once the video is exported, the app calls the VideoDB API to index spoken words, generate a transcript, and create a subtitled stream — all available for in-app HLS playback or sharing via URL.


Open source

The UI layer is fully open source.

  • Modify it — Customize the interface to your needs
  • Extend it — Add new features and workflows
  • Plug it in — Integrate with your own systems

Bloom is not just a tool. It's a foundation for building agentic systems on top of recordings.


Philosophy

Your recorder should not trap your data.

It should:

  • Give you ownership — Local-first, no lock-in
  • Enable intelligence — AI-ready from day one
  • Power your agents — APIs and integrations built-in

Bloom is built for that future.


Development Setup

Prerequisites

Quick Start

npm install
npm start

On first launch, grant microphone and screen recording permissions, then enter your VideoDB API key.


Project Structure

src/
├── main/                       # Electron Main Process
│   ├── index.js                # App entry, windows, tray, IPC routing
│   ├── db/
│   │   └── database.js         # SQLite via sql.js
│   ├── ipc/                    # IPC handlers
│   │   ├── capture.js          # Recording start/stop, channels, devices
│   │   ├── permissions.js      # Permission check/request/open settings
│   │   ├── camera.js           # Camera bubble control
│   │   ├── history.js          # Library: recordings list, delete, sync
│   │   └── auth.js             # Login, logout, onboarding
│   ├── lib/                    # Utilities
│   │   ├── config.js           # App config
│   │   ├── logger.js           # File + console logging
│   │   ├── paths.js            # App paths (DB, config, logs)
│   │   └── videodb-patch.js    # Binary relocation for packaged apps
│   └── services/
│       ├── videodb.service.js  # VideoDB SDK wrapper
│       ├── session.service.js  # Session tokens, WebSocket, sync
│       └── insights.service.js # Transcript + subtitle indexing
├── renderer/                   # Renderer (context-isolated)
│   ├── index.html              # Floating bar page
│   ├── renderer.js             # Bar init + event routing
│   ├── permissions.html        # Permissions modal window
│   ├── onboarding.html         # Onboarding modal window
│   ├── history.html            # Library window
│   ├── history.js              # Library — list, player, download, share, sync
│   ├── display-picker.html     # Display picker popup
│   ├── camera.html             # Camera bubble
│   ├── ui/
│   │   └── bar.js              # Bar controls, toggles, timer, devices
│   ├── utils/
│   │   ├── permissions.js      # Permission check/request utility
│   │   └── logger.js           # Renderer-side logging
│   └── img/                    # Icons, brand assets, animated previews
└── preload/
    └── index.js                # Context bridge (renderer ↔ main)

build/
├── afterPack.js                # electron-builder hook (codesign, plist patch)
├── entitlements.mac.plist      # macOS entitlements
└── icon.icns                   # App icon

Troubleshooting

Permissions denied

  • macOS: System Settings → Privacy & Security → enable Screen Recording / Microphone / Camera

Camera not showing

  • Toggle camera off/on in source controls
  • Check Camera permission in system settings

Reset

# Delete the app database (stored in Electron userData)
# macOS
rm ~/Library/Application\ Support/bloom/bloom.db
rm ~/Library/Application\ Support/bloom/config.json

Then run npm start


Building

# Build directory (for testing)
npm run pack

# Build DMG installers (macOS arm64 + x64)
npm run dist

License

MIT


Community & Support


VideoDB

Made with love by the VideoDB team

Created: Feb 19, 2026

Last push: Apr 6, 2026

Default branch: main

Latest release: v2.1.0

Languages

Share of the codebase by language, based on repository metadata from the host.

  • JavaScript 61.0%
  • HTML 37.2%
  • Shell 1.2%
  • PowerShell 0.6%

Repository Radar analysis

Deterministic insights derived from public metadata and our observations — not personal testing or reviews.

Why this repository is interesting

  • Listed in our discovery index with public GitHub metadata for analysis.

Who should use it

  • Developers working primarily with JavaScript
  • Teams exploring AI tooling, agents, or ML infrastructure

Potential use cases

  • Reference or evaluate JavaScript open-source approaches in this domain
  • Prototype AI/agent workflows or study reference architectures

Strengths

  • README present in our index
  • Declared license: MIT License

Limitations / considerations

  • Insights are derived from public metadata and our observations — not a substitute for code review

What to watch

  • Radar Score is modest — dig into activity and docs before committing

Source: GitHub (public metadata) + Repository Radar analysis. We do not claim ownership of third-party repositories.

Ready to ship something that compounds?

Share your roadmap. We’ll come back with scope options, timeline ranges, and who from Shriram IT Ventures should be in the room.

Popular with product teams