@ishaan812/devlog 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -59
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
Open-source, local-first AI work logging for developers who juggle<br>too many repos, too many branches, and too many standups.
|
|
15
15
|
|
|
16
|
+
**[devlog.ishaan812.com](https://devlog.ishaan812.com)**
|
|
17
|
+
|
|
16
18
|
[](LICENSE)
|
|
17
19
|
[](https://go.dev)
|
|
18
20
|
[](https://github.com/ishaan812/devlog)
|
|
@@ -22,7 +24,7 @@ Open-source, local-first AI work logging for developers who juggle<br>too many r
|
|
|
22
24
|
|
|
23
25
|
You ship code across 5 repos, 12 branches, and 3 teams. Monday morning standup hits and you're scrolling through `git log` trying to remember what you did last Thursday.
|
|
24
26
|
|
|
25
|
-
**DevLog fixes that.** It ingests your git history across every repo and branch you work on, and turns it into smart, structured work logs — automatically. No more "I think I worked on the auth thing?"
|
|
27
|
+
**DevLog fixes that.** It ingests your git history across every repo and branch you work on, and turns it into smart, structured work logs — automatically. No more "I think I worked on the auth thing?" Get your work summary in seconds.
|
|
26
28
|
|
|
27
29
|
---
|
|
28
30
|
|
|
@@ -33,6 +35,7 @@ npm install -g @ishaan812/devlog # Install
|
|
|
33
35
|
devlog onboard # Set up (works with free local Ollama)
|
|
34
36
|
devlog ingest # Point it at your repos
|
|
35
37
|
devlog worklog --days 7 # Get your week's work, organized by branch
|
|
38
|
+
devlog console # Browse worklogs in an interactive TUI
|
|
36
39
|
```
|
|
37
40
|
|
|
38
41
|
That's it. Professional markdown work logs, generated from your actual commits. Multi-repo, multi-branch, zero effort.
|
|
@@ -60,24 +63,22 @@ DevLog is **local-first**. Run it with [Ollama](https://ollama.ai) and your data
|
|
|
60
63
|
| Feature | Description |
|
|
61
64
|
|---------|-------------|
|
|
62
65
|
| **Smart Work Logs** | Auto-generated markdown summaries organized by branch, date, and repo — ready for standups, PRs, or performance reviews |
|
|
66
|
+
| **Interactive Console** | Full-screen terminal UI to browse repos and navigate through your cached worklogs day-by-day |
|
|
63
67
|
| **Multi-Repo Ingestion** | Ingest as many repos as you want into a single profile. See your full picture. |
|
|
64
68
|
| **Multi-Branch Tracking** | Branch-aware ingestion remembers your selections per repo. Track `main`, `develop`, and every feature branch. |
|
|
65
69
|
| **Local-First AI** | Works completely offline with Ollama. Your code and history stay on your machine. |
|
|
66
|
-
| **Cheap Cloud Fallback** | Optionally use Anthropic, OpenAI, OpenRouter, or AWS Bedrock — most queries cost fractions of a cent |
|
|
67
|
-
| **Natural Language Queries** | Ask questions about your git history in plain English |
|
|
68
|
-
| **Semantic Code Search** | Find code by describing what it does, not just grepping keywords |
|
|
70
|
+
| **Cheap Cloud Fallback** | Optionally use Anthropic, OpenAI, OpenRouter, or AWS Bedrock — most queries are very lightweight and would cost fractions of a cent |
|
|
69
71
|
| **Profile System** | Isolated databases for work vs. personal, or per-client contexts |
|
|
70
72
|
| **Incremental Updates** | Re-runs only process new commits. Fast even on large repos. |
|
|
71
|
-
| **Codebase Visualization** | Generate structure diagrams and collaboration graphs |
|
|
72
73
|
|
|
73
74
|
## Quick Start
|
|
74
75
|
|
|
75
76
|
```bash
|
|
76
77
|
# 1. Install DevLog
|
|
77
|
-
npm install -g devlog
|
|
78
|
+
npm install -g @ishaan812/devlog
|
|
78
79
|
# or: go install github.com/ishaan812/devlog/cmd/devlog@latest
|
|
79
80
|
|
|
80
|
-
# 2. Run the setup wizard
|
|
81
|
+
# 2. Run the setup wizard
|
|
81
82
|
devlog onboard
|
|
82
83
|
|
|
83
84
|
# 3. Ingest your repositories
|
|
@@ -87,8 +88,6 @@ devlog ingest ~/projects/shared-lib
|
|
|
87
88
|
|
|
88
89
|
# 4. See what you actually shipped
|
|
89
90
|
devlog worklog --days 7
|
|
90
|
-
devlog ask "What did I work on this week?"
|
|
91
|
-
devlog search "error handling"
|
|
92
91
|
```
|
|
93
92
|
|
|
94
93
|
## Installation
|
|
@@ -105,6 +104,16 @@ npm install -g @ishaan812/devlog
|
|
|
105
104
|
go install github.com/ishaan812/devlog/cmd/devlog@latest
|
|
106
105
|
```
|
|
107
106
|
|
|
107
|
+
**Note:** Make sure `$HOME/go/bin` (or `$GOPATH/bin`) is in your PATH. Add this to your shell config if needed:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# For bash (~/.bashrc) or zsh (~/.zshrc)
|
|
111
|
+
export PATH="$HOME/go/bin:$PATH"
|
|
112
|
+
|
|
113
|
+
# For fish (~/.config/fish/config.fish)
|
|
114
|
+
set -gx PATH $HOME/go/bin $PATH
|
|
115
|
+
```
|
|
116
|
+
|
|
108
117
|
### From Source
|
|
109
118
|
|
|
110
119
|
```bash
|
|
@@ -190,58 +199,22 @@ One command. Every repo. Every branch. Organized and summarized:
|
|
|
190
199
|
|
|
191
200
|
That's your standup, done. Copy-paste it, email it, or drop it in Slack.
|
|
192
201
|
|
|
193
|
-
### 4. Query Your Activity
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
# Ask natural language questions
|
|
197
|
-
devlog ask "What features did I add this month?"
|
|
198
|
-
devlog ask "Show me commits related to the payment system"
|
|
199
|
-
devlog ask "Which files have I changed the most?"
|
|
200
|
-
|
|
201
|
-
# Semantic code search
|
|
202
|
-
devlog search "database connection pooling"
|
|
203
|
-
devlog search "user authentication flow"
|
|
204
|
-
```
|
|
205
|
-
|
|
206
202
|
## Commands Reference
|
|
207
203
|
|
|
208
204
|
### `devlog ingest`
|
|
209
205
|
|
|
210
|
-
Ingest git history
|
|
206
|
+
Ingest git history from your repositories.
|
|
211
207
|
|
|
212
208
|
```bash
|
|
213
209
|
devlog ingest # Current directory
|
|
214
210
|
devlog ingest ~/projects/myapp # Specific path
|
|
215
211
|
devlog ingest --days 90 # Last 90 days (default: 30)
|
|
216
212
|
devlog ingest --all # Full git history
|
|
217
|
-
devlog ingest --git-only # Skip codebase indexing
|
|
218
|
-
devlog ingest --index-only # Skip git history
|
|
219
213
|
devlog ingest --reselect-branches # Re-select branches
|
|
220
214
|
devlog ingest --all-branches # Ingest all branches
|
|
221
215
|
devlog ingest --fill-summaries # Generate missing commit summaries
|
|
222
216
|
```
|
|
223
217
|
|
|
224
|
-
### `devlog ask`
|
|
225
|
-
|
|
226
|
-
Query your development activity using natural language.
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
devlog ask "What did I work on this week?"
|
|
230
|
-
devlog ask "Show commits about authentication"
|
|
231
|
-
devlog ask "Which files changed the most in January?"
|
|
232
|
-
devlog ask --provider anthropic "Summarize my recent work"
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### `devlog search`
|
|
236
|
-
|
|
237
|
-
Semantic search across your indexed codebase.
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
devlog search "authentication logic"
|
|
241
|
-
devlog search "database queries"
|
|
242
|
-
devlog search -n 20 "error handling" # More results
|
|
243
|
-
```
|
|
244
|
-
|
|
245
218
|
### `devlog worklog`
|
|
246
219
|
|
|
247
220
|
Generate formatted work logs from your commit history.
|
|
@@ -254,6 +227,22 @@ devlog worklog --no-llm # Skip AI summaries
|
|
|
254
227
|
devlog worklog --group-by date # Group by date instead of branch
|
|
255
228
|
```
|
|
256
229
|
|
|
230
|
+
### `devlog console`
|
|
231
|
+
|
|
232
|
+
Interactive terminal UI to browse repositories and worklogs.
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
devlog console # Launch full-screen TUI
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Features:
|
|
239
|
+
- Browse through all your ingested repositories
|
|
240
|
+
- Navigate day-by-day worklogs
|
|
241
|
+
- View formatted markdown content in the terminal
|
|
242
|
+
- Keyboard shortcuts for quick navigation (arrow keys, j/k, tab)
|
|
243
|
+
|
|
244
|
+
Requires at least one prior `devlog worklog` run to populate the cache.
|
|
245
|
+
|
|
257
246
|
### `devlog profile`
|
|
258
247
|
|
|
259
248
|
Manage isolated profiles for different work contexts.
|
|
@@ -270,19 +259,9 @@ devlog profile delete old # Delete a profile
|
|
|
270
259
|
Use a profile temporarily:
|
|
271
260
|
```bash
|
|
272
261
|
devlog --profile work ingest ~/work/project
|
|
273
|
-
devlog --profile personal
|
|
262
|
+
devlog --profile personal worklog --days 7
|
|
274
263
|
```
|
|
275
264
|
|
|
276
|
-
### `devlog graph`
|
|
277
|
-
|
|
278
|
-
Visualize your codebase structure.
|
|
279
|
-
|
|
280
|
-
```bash
|
|
281
|
-
devlog graph # Folder structure
|
|
282
|
-
devlog graph --type commits # Commit activity
|
|
283
|
-
devlog graph --type files # File change heatmap
|
|
284
|
-
devlog graph --type collab # Developer collaboration
|
|
285
|
-
devlog graph -o diagram.md # Export as Mermaid markdown
|
|
286
265
|
```
|
|
287
266
|
|
|
288
267
|
### `devlog list`
|
|
@@ -442,7 +421,6 @@ make install
|
|
|
442
421
|
|
|
443
422
|
# Run development commands
|
|
444
423
|
make run-ingest
|
|
445
|
-
make run-ask
|
|
446
424
|
make run-worklog
|
|
447
425
|
```
|
|
448
426
|
|
|
@@ -484,9 +462,92 @@ devlog ingest --skip-summaries
|
|
|
484
462
|
- **Open source maintainers** who want to generate changelogs and activity summaries
|
|
485
463
|
- **Anyone tired of `git log --oneline | head -50`** as a standup prep strategy
|
|
486
464
|
|
|
465
|
+
## About the Project
|
|
466
|
+
|
|
467
|
+
### The Problem That Started It All
|
|
468
|
+
|
|
469
|
+
Every Monday morning, the same ritual: staring at four terminal windows, trying to piece together what I shipped last week. Between juggling multiple feature branches, emergency hotfixes, and code reviews across frontend, backend, and infrastructure repos, I'd lose track of my own work.
|
|
470
|
+
|
|
471
|
+
Standup meetings became archaeology sessions. Performance reviews meant hours of manual git history diving and piecing together scraps I had left to remember what I worked on. I'd spend an awful amount of time *remembering* what I built.
|
|
472
|
+
|
|
473
|
+
The final straw? Missing a critical bug fix in a standup because it happened in a repo I forgot I'd touched. I realized: **git is the perfect source of truth, but humans are terrible at reading raw git logs across dozens of branches.**
|
|
474
|
+
|
|
475
|
+
What if your git history could just... explain itself?
|
|
476
|
+
|
|
477
|
+
### What I Learned
|
|
478
|
+
|
|
479
|
+
Building DevLog taught me that **context is expensive, but structured data is cheap**:
|
|
480
|
+
|
|
481
|
+
1. **LLM Integration Patterns**: Initially, I hardcoded Gemini. Bad idea. Abstracting provider interfaces taught me the value of flexibility—users shouldn't be forced into expensive APIs when Ollama runs free on their laptop. The `llm.Client` interface now supports 5+ providers with zero code changes to the core logic.
|
|
482
|
+
|
|
483
|
+
2. **Git Isn't Just Text**: Walking a git repository efficiently is *hard*. I learned about git object databases, tree traversal algorithms, and how to use `git2go` (libgit2 bindings) to avoid shelling out to git commands thousands of times. The performance difference was \( O(n \log n) \to O(n) \) for large repos.
|
|
484
|
+
|
|
485
|
+
3. **Terminal UIs That Don't Suck**: Building the interactive console with [Bubble Tea](https://github.com/charmbracelet/bubbletea) taught me functional reactive patterns in Go. State management in a TUI is surprisingly similar to React—every keypress is an event, every render is a pure function of state.
|
|
486
|
+
|
|
487
|
+
4. **Distribution Complexity**: Shipping a Go binary via npm was trickier than expected. I learned about platform detection, cross-compilation, release automation with GitHub Actions, and why `install.js` scripts need extensive error handling. Supporting `npm install -g`, `go install`, and `brew` simultaneously meant tripling my packaging logic.
|
|
488
|
+
|
|
489
|
+
5. **Privacy-First Design**: Making Ollama the default provider wasn't just philosophical—it forced architectural decisions that made the tool better. Every API call had to be justified. Every piece of data sent to an LLM had to be minimal. The result: most queries are < 2KB, even for large repos.
|
|
490
|
+
|
|
491
|
+
### Challenges I Faced
|
|
492
|
+
|
|
493
|
+
1. **Multi-Repo Timeline Merging**
|
|
494
|
+
**Problem**: Users work on 5+ repos simultaneously. How do you merge timelines across repos while keeping branch context clear?
|
|
495
|
+
**Solution**: Unified timestamp sorting with branch metadata preserved. WorkLogs group by `(date, repo, branch)` tuples, then sort commits within each group. The data model stores absolute timestamps, avoiding timezone hell.
|
|
496
|
+
|
|
497
|
+
2. **LLM Prompt Engineering for Code**
|
|
498
|
+
**Problem**: Early summaries were terrible—either too verbose ("added semicolon to line 47") or too vague ("updated files").
|
|
499
|
+
**Solution**: Iterative prompt design with few-shot examples. I learned that LLMs need *explicit structure*:
|
|
500
|
+
```
|
|
501
|
+
Given these commits, extract:
|
|
502
|
+
- High-level changes (what feature/fix)
|
|
503
|
+
- Technical approach (how it works)
|
|
504
|
+
- Files affected (why it matters)
|
|
505
|
+
```
|
|
506
|
+
This increased summary quality by ~60% based on user feedback.
|
|
507
|
+
|
|
508
|
+
3. **Performance on Large Repos**
|
|
509
|
+
**Problem**: A repo with 50,000 commits would take 2+ minutes to ingest. Unacceptable.
|
|
510
|
+
**Solution**: Incremental ingestion. DevLog tracks the last processed commit SHA per branch. Re-runs only walk new commits:
|
|
511
|
+
\[
|
|
512
|
+
T_{\text{ingest}} = O(k) \text{ where } k = \text{new commits}, \text{ not } O(n)
|
|
513
|
+
\]
|
|
514
|
+
Average re-ingest time dropped from 120s to 3s on active repos.
|
|
515
|
+
|
|
516
|
+
4. **Cross-Platform Binary Distribution**
|
|
517
|
+
**Problem**: Go users want `go install`. JS developers want `npm install -g`. Both should work.
|
|
518
|
+
**Solution**: `package.json` includes a post-install script (`install.js`) that detects the platform, downloads the correct pre-built binary from GitHub releases, and symlinks it. Go users bypass npm entirely. One codebase, two package managers.
|
|
519
|
+
|
|
520
|
+
5. **Making TUIs Feel Native**
|
|
521
|
+
**Problem**: Terminal UIs often feel sluggish or unresponsive. Arrow key lag, janky scrolling, unclear state changes.
|
|
522
|
+
**Solution**: Embraced Bubble Tea's Elm architecture. Every component is a pure state machine. Render logic never blocks. The result: 60 FPS terminal UIs with smooth vim-style navigation (`j`/`k` keys, `Ctrl+D`/`Ctrl+U` scrolling).
|
|
523
|
+
|
|
524
|
+
### What's Next
|
|
525
|
+
|
|
526
|
+
- **Linear/Slack/Jira integrations**: To be able to gather informations from all work surfaces
|
|
527
|
+
- **Team mode**: Aggregate worklogs across teams for engineering manager reports
|
|
528
|
+
- **Git hooks**: Auto-commit worklogs to a markdown file in your repo on each commit
|
|
529
|
+
|
|
530
|
+
DevLog started as a personal itch—I was tired of forgetting my own work. It turned into a lesson in building tools that respect user privacy, embrace local-first principles, and make boring tasks (standup prep) disappear. If you've ever fumbled through your slack messages at 8:59am before a standup, this tool is for you.
|
|
531
|
+
|
|
487
532
|
## Contributing
|
|
488
533
|
|
|
489
|
-
Contributions are welcome!
|
|
534
|
+
Contributions are welcome! DevLog is open source and we'd love your help making it better.
|
|
535
|
+
|
|
536
|
+
**Ways to contribute:**
|
|
537
|
+
- 🐛 Report bugs or issues
|
|
538
|
+
- 💡 Suggest new features or improvements
|
|
539
|
+
- 📝 Improve documentation
|
|
540
|
+
- 🔧 Submit pull requests for bug fixes or features
|
|
541
|
+
- ⭐ Star the repo if you find it useful
|
|
542
|
+
|
|
543
|
+
**Getting started:**
|
|
544
|
+
1. Fork the repository
|
|
545
|
+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
546
|
+
3. Make your changes and commit (`git commit -m 'feat: add amazing feature'`)
|
|
547
|
+
4. Push to your branch (`git push origin feature/amazing-feature`)
|
|
548
|
+
5. Open a Pull Request
|
|
549
|
+
|
|
550
|
+
See the [Development](#development) section for build instructions.
|
|
490
551
|
|
|
491
552
|
## License
|
|
492
553
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ishaan812/devlog",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "AI-powered development activity tracker and code intelligence tool. Local-first work logging for developers who juggle too many repos.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"devlog": "./bin/devlog-wrapper.js"
|