Data Transparency

Blast is open source. Here's exactly what data is collected and sent — no hidden fields, no surprises.

Activity Payload

Every 60 seconds, your editor plugin sends activity data for each file you've edited. This is the only data that gets synced to our servers.

Public project

{
  "type": "activity",
  "data": {
    "project": "blast.nvim",
    "git_remote": "github.com/taigrr/blast.nvim",
    "git_branch": "main",
    "started_at": "2025-02-18T14:30:00Z",
    "ended_at": "2025-02-18T14:45:00Z",
    "filename": "lua/blast/tracker.lua",
    "filetype": "lua",
    "lines_added": 12,
    "lines_removed": 3,
    "actions_per_minute": 42.5,
    "words_per_minute": 18.2,
    "editor": "neovim"  // or "emacs"
  }
}

Private project

{
  "type": "activity",
  "data": {
    "project": "private",
    "git_remote": "private",
    "git_branch": "private",
    "started_at": "2025-02-18T14:30:00Z",
    "ended_at": "2025-02-18T14:45:00Z",
    "filename": null,
    "filetype": "lua",
    "lines_added": 12,
    "lines_removed": 3,
    "actions_per_minute": 42.5,
    "words_per_minute": 18.2,
    "editor": "neovim"  // or "emacs"
  }
}

Field Reference

FieldPublicPrivateDescription
projectDirectory/repo name"private"From .blast.toml, git, or directory
git_remoteOrigin URL (sanitized)"private"Helps identify forks vs originals
git_branchCurrent branch"private"Branch you're working on
filenameRelative pathnullFile path within the project
filetypeAlways sentLanguage (lua, go, tsx, etc.) — for stats
started_at / ended_atAlways sentISO 8601 UTC timestamps
lines_added / lines_removedAlways sentLine change counts
actions_per_minuteAlways sentKeystrokes, commands, etc.
words_per_minuteAlways sentNet words added (positive only)
editorAlways sentYour editor — hopefully "neovim"

Other Messages

These messages stay local between the plugin and daemon — they aren't sent to the server.

Keepalive ping

{
  "type": "ping"
}

Sent every 10 seconds to keep the daemon alive

Manual sync trigger

{
  "type": "sync"
}

Triggers immediate sync via :BlastSync

What's NOT Collected

  • File contents — We only count words and lines, never read actual code
  • Clipboard data — Not accessed
  • Environment variables — Not accessed
  • Network requests — Only talks to the local daemon
  • Other applications — Editor plugins only, no OS-level tracking

Verify it yourself

All plugins and the daemon are open source. See exactly what gets collected: