Release v1.0.0: README, version bump

Add English README with badges, installation guide, usage examples,
and architecture overview. Bump version to 1.0.0 in manifest and package.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Luca Oelfke 2026-02-12 12:20:23 +01:00
parent 3c8c22ee07
commit 22fd818668
3 changed files with 203 additions and 2 deletions

201
README.md Normal file
View file

@ -0,0 +1,201 @@
<div align="center">
# Logfire
**Track everything. Query anything. Visualize it all.**
An Obsidian plugin that logs all vault activity into a local SQLite database,
makes it queryable via SQL, and visualizes results with charts and dashboards.
[![GitHub release](https://img.shields.io/github/v/release/tolvitty/obsidian-logfire?style=flat-square)](https://github.com/tolvitty/obsidian-logfire/releases)
[![License](https://img.shields.io/github/license/tolvitty/obsidian-logfire?style=flat-square)](LICENSE)
[![Obsidian](https://img.shields.io/badge/Obsidian-Desktop%20only-7C3AED?style=flat-square&logo=obsidian)](https://obsidian.md)
[![SQLite](https://img.shields.io/badge/Powered%20by-SQLite-003B57?style=flat-square&logo=sqlite)](https://sqlite.org)
</div>
---
<div align="center">
## Features
</div>
### Event Tracking
Logfire silently records vault activity in the background — file operations, content changes, navigation, editor keystrokes, and command executions. Events are buffered, debounced, and flushed to SQLite in batches for minimal performance impact.
### SQL Query Engine
Query your vault data with full SQL support. Use the interactive query editor with shorthand syntax (`events today`, `stats this-week group by file`) or write raw SQL. Includes autocomplete for table names, columns, functions, and event types.
### Data Visualization
- **10 SVG chart types** — bar, line, area, pie, donut, scatter, gauge, sparkline, stacked bar, horizontal bar
- **6 render formats** — table, timeline, summary, metric, list, heatmap
- **Multi-widget dashboards** with configurable grid layouts and auto-refresh
- **Vim-style keyboard navigation** (j/k/h/l, gg/G, /, y, Enter) for tables
### Virtual Tables
Query live vault metadata alongside event data:
| Table | Contents |
|---|---|
| `_files` | path, name, extension, size, created, modified, folder |
| `_links` | from_path, to_path, display_text, link_type |
| `_tags` | path, tag |
| `_headings` | path, level, heading |
### Projections & Reports
Automatically generate Markdown reports from event data. Built-in presets for daily logs, session logs, and weekly digests — or create custom projection templates with scheduling.
### Query Management
- **History** — automatic tracking of all executed queries with metrics
- **Favorites** — save, categorize, and tag frequently used queries
- **Templates** — 9 built-in templates with parameter substitution, plus custom templates
- **Export** — CSV (Excel-compatible with BOM) and JSON export
---
<div align="center">
## Installation
</div>
### Manual Installation
1. Download `main.js`, `styles.css`, and `manifest.json` from the [latest release](https://github.com/tolvitty/obsidian-logfire/releases/latest)
2. Create a folder `<your-vault>/.obsidian/plugins/logfire/`
3. Copy the three files into that folder
4. Install the native SQLite dependency:
```bash
cd <your-vault>/.obsidian/plugins/logfire/
mkdir -p node_modules
npm install better-sqlite3 --prefix .
```
5. Rebuild `better-sqlite3` for your Obsidian's Electron version:
```bash
# Find your Electron version (check Obsidian > Help > About)
npx @electron/rebuild -v <electron-version> -m . --only better-sqlite3
```
6. Restart Obsidian and enable **Logfire** in Settings → Community Plugins
### Build from Source
```bash
git clone git@github.com:tolvitty/obsidian-logfire.git
cd obsidian-logfire
npm install
npm run build
```
Then copy `main.js`, `styles.css`, and `manifest.json` to your plugin folder and follow steps 46 above for the native module setup.
> **Note:** Logfire is desktop-only. It requires `better-sqlite3`, a native Node.js module that must match your Obsidian's Electron ABI version. Mobile is not supported.
---
<div align="center">
## Usage
</div>
### Code Blocks
Embed live queries directly in your notes:
````markdown
```logfire
range: today
group: file
format: table
```
````
````markdown
```logfire-sql
SELECT source, COUNT(*) as events
FROM events
WHERE timestamp > (strftime('%s', 'now', 'start of day') * 1000)
GROUP BY source
ORDER BY events DESC
LIMIT 10
```
````
````markdown
```logfire-dashboard
name: My Dashboard
columns: 12
[widget:chart row:0 col:0 width:6 height:2]
-- title: Events by Type
-- chart: pie
SELECT type, COUNT(*) as count FROM events GROUP BY type
[widget:stat row:0 col:6 width:3 height:1]
-- title: Total Events
SELECT COUNT(*) as value FROM events
[widget:query row:0 col:9 width:3 height:2]
-- title: Recent Files
SELECT source, COUNT(*) as n FROM events GROUP BY source ORDER BY n DESC LIMIT 5
```
````
### Commands
All commands are available via the command palette (`Ctrl/Cmd+P`):
| Command | Description |
|---|---|
| Show event stream | Real-time event sidebar |
| Show dashboard | Open dashboard view |
| Open query editor | Interactive SQL editor |
| Show schema browser | Browse tables, columns, indexes |
| Show query templates | Pick from built-in and custom templates |
| Run projection | Execute a Markdown report template |
| Toggle tracking | Pause/resume event collection |
| Toggle Vim navigation | Enable j/k/h/l navigation in tables |
---
<div align="center">
## Architecture
</div>
```
src/
├── main.ts Plugin entry, lifecycle, commands
├── types.ts Event types, settings, query interfaces
├── core/
│ ├── database.ts SQLite via better-sqlite3
│ ├── event-bus.ts Circular buffer, pub/sub, auto-flush
│ ├── session-manager.ts Session start/end, duration tracking
│ ├── content-analyzer.ts Snapshot cache, word/link/tag diffs
│ └── query-builder.ts QueryConfig → parameterized SQL
├── collectors/ File, content, nav, editor, system
├── query/ Code-block processors, modal, virtual tables, autocomplete
├── viz/ Table renderer, SVG charts, dashboards, Vim navigation
├── management/ History, favorites, templates
├── projection/ Report engine, formatters, presets
└── ui/ Settings, status bar, event stream, schema browser
```
---
<div align="center">
## License
MIT
</div>

View file

@ -1,7 +1,7 @@
{
"id": "logfire",
"name": "Logfire",
"version": "0.1.0",
"version": "1.0.0",
"minAppVersion": "1.5.0",
"description": "Track all vault activity, query with SQL, visualize with charts and dashboards — all backed by SQLite.",
"author": "tolvitty",

View file

@ -1,6 +1,6 @@
{
"name": "logfire",
"version": "0.1.0",
"version": "1.0.0",
"description": "Track all vault activity, query with SQL, visualize with charts and dashboards",
"main": "main.js",
"scripts": {