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
| Field | Public | Private | Description |
|---|---|---|---|
| project | Directory/repo name | "private" | From .blast.toml, git, or directory |
| git_remote | Origin URL (sanitized) | "private" | Helps identify forks vs originals |
| git_branch | Current branch | "private" | Branch you're working on |
| filename | Relative path | null | File path within the project |
| filetype | Always sent | Language (lua, go, tsx, etc.) — for stats | |
| started_at / ended_at | Always sent | ISO 8601 UTC timestamps | |
| lines_added / lines_removed | Always sent | Line change counts | |
| actions_per_minute | Always sent | Keystrokes, commands, etc. | |
| words_per_minute | Always sent | Net words added (positive only) | |
| editor | Always sent | Your 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: