build-loud
Auto-capture your coding sessions into a build-in-public journal. Scores entries, writes in your voice. Zero dependencies.
Open source Open in the app JSON README (API)
About
Auto-capture your coding sessions into a build-in-public journal. Scores entries, writes in your voice. Zero dependencies.
Details
- Kind
- Plugins
- Topic
- Developer tools
- Publisher
- marylin
- Origin
- marketplace
- Category
- ferramentas
- Forks
- 1
- Last push
- 2026-04-01T16:11:01Z
- Repository state
- ativo
- Language
- JavaScript
- License
- AGPL-3.0
- Added
- 2026-08-30 01:48:58
- Updated
- 2026-08-30 01:48:58
- Origin id
marylin/buildloud/build-loud
README
# BuildLoud

[](LICENSE)
[](https://nodejs.org)
[](package.json)
**Auto-capture your coding sessions into a build-in-public journal.**
```
you commit code
-> hooks silently log commits and PRs to a session file
-> BuildLoud scores and writes a journal entry in your voice
```
## Quickstart
```bash
# 1. Add the marketplace
/plugin marketplace add marylin/buildloud
# 2. Install the plugin
/plugin install buildloud@buildloud
# 3. Set up your voice profile
/journey-init
# 4. Code normally — hooks capture everything automatically
# 5. Check your journal
journey status
```
Hooks auto-register on install — no manual configuration needed.
## Processing Modes
Configured in `~/.claude/journey/config.md`:
| Mode | AI Usage | Token Cost | What Happens |
|------|----------|------------|--------------|
| **basic** (default) | None | 0 | Raw commit summaries, deterministic scoring |
| **enhanced** | Prompt | ~200-500/session | Notifies about high-score entries for voice rewriting |
| **full** | Agent | ~1000-5000/session | Agent rewrites entries with tool access for richer context |
All modes save raw entries first. If AI rewriting fails, entries are preserved as-is.
```markdown
## Hook Mode
- mode: enhanced
```
## Skills
| Command | Description |
|---------|-------------|
| `/journey-init` | Set up voice profile, notifications, platforms |
| `/journal <text>` | Log an entry (quick mode) |
| `/journal` | Log an entry (guided -- asks what happened) |
| `/j <text>` | Shortcut for `/journal` |
| `/journal-review` | Browse and curate entries by score |
| `/journal-publish` | Rewrite entries for Twitter, LinkedIn, or blog |
| `/journal-digest` | Generate weekly narrative summary |
## CLI Commands
```bash
journey log "shipped auth" --type feature # Manual entry with scoring
journey status # Streaks, counts, pending sessions
journey search "auth" # Search journal entries
journey doctor # Check hooks, config, cache health
journey recover # Process orphaned session files
journey process-session --file PATH # Score session data (used by hooks)
```
Example output from `journey status`:
```
BuildLoud Status
Current streak: 5 days
Longest streak: 12 days
Total entries: 47
Pending: 2 sessions
Last entry: 2026-03-29
```
## Hook Configuration
BuildLoud uses four hooks in `~/.claude/settings.json`:
| Hook | Trigger | What It Does |
|------|---------|--------------|
| **PostToolUse** | `Bash(git commit*)` | Appends commit data to the session JSONL file |
| **PostToolUse** | `Bash(gh pr *)\|Bash(git merge*)` | Flags PRs and merges as notable events |
| **Stop** | Session ends | Scores the session and writes journal entries |
| **SessionStart** | Session starts | Nudges about unreviewed high-score entries |
All hooks are `command` type, exit 0 on all paths (crash-proof), and run with 3-10s timeouts. Hooks auto-register when you install the plugin.
## Scoring
Deterministic, no AI. Every entry gets a 0-10 score based on heuristics:
| Signal | Points |
|--------|--------|
| Milestone keyword (shipped, launched) | +4 |
| Insight or blocker | +3 |
| Manually logged via `/journal` | +3 |
| Feature | +2 |
| New project (first entry) | +2 |
| Milestone detected (streak, volume) | +2 |
| Bugfix, refactor, infra | +1 |
| Insight phrases | +1 |
| Hot project (3+ sessions/week) | +1 |
- **7+** = ready to share
- **5-6** = solid work, digest-worthy
- **Below 5** = journal-only
## Voice Profile
`/journey-init` captures how you write. Stored in `~/.claude/journey/config.md`:
```markdown
## Voice
Sarcastic, honest, first-person. Short sentences.
## Examples
- "Fifteen hours later I have a full orchestration platform."
- "The finance aesthetic we should have had from day one."
## What I never say
- "Excited to announce"
- "Thrilled to share"
```
Per-repo overrides via `.claude/journey.md`.
## Obsidian Integration (Optional)
If you use [Obsidian](https://obsidian.md), `/journey-init` can link your journal entries so they appear in your vault automatically. Just say "yes" when asked during setup.
Your entries show up at `<obsidian-vault>/journal/YYYY/MM/YYYY-MM-DD.md` — browse, search, and link them like any other note.
## Data and Privacy
- **All data is local**: `~/.claude/journey/` -- markdown files and JSON cache
- **What's captured**: commit messages, PR titles, timestamps, project names
- **What's NOT captured**: diffs, file contents, credentials, environment variables
- **Nothing is sent anywhere**: no telemetry, no cloud sync, no external API calls
- **Git-trackable**: add `~/.claude/journey/` to a repo if you want version history
```
~/.claude/journey/
entries/YYYY/MM/YYYY-MM-DD.md # Journal entries (one file per day)
weekly/YYYY-WNN.md # Weekly digests
cache.json # Streaks, fingerprints, project stats
config.md # Your voice profile
errors.log # Error log with rotation
```
## Project Structure
```
buildloud/
.claude-plugin/
plugin.json # Plugin manifest
hooks/hooks.json # Auto-registered hooks (4 hooks)
skills/ # 6 skills (SKILL.md per directory)
bin/journey.js # CLI entry point (6 commands)
lib/
score.js # Deterministic scoring + milestones
cache.js # Streaks, fingerprints, local state
markdown.js # Daily markdown file writer
errors.js # Error logging with rotation
config.js # Mode + voice reader
cli/ # CLI command implementations
scripts/
journey-accumulate.sh # Hook: capture git commits
journey-notable.sh # Hook: capture PRs and merges
journey-stop.sh # Hook: session-end scoring
journey-sessionstart.sh # Hook: session-start nudge
tests/ # 107 tests, 19 suites
config.example.md # Voice profile template
package.json # Zero dependencies
```
## Requirements
- **Node.js 20+** (uses `import.meta.dirname`, `node:test`, `parseArgs`)
- **Claude Code** (hooks and skills run inside it)
- Zero runtime dependencies. No API keys. No accounts.
## License
[AGPL-3.0](LICENSE) -- Copyright 2026 [Marylin Alarcon](https://github.com/marylin)