A small command-line tool for developers to record daily work notes and generate simple Markdown summaries.
DevLog is intended to be useful both directly from the terminal and through coding-agent harnesses such as Pi, OpenCode, or similar tools. The CLI remains the source of truth; agent integrations can call the CLI to log work or create summaries.
- Initialize a local
~/.devlog/config.json - Add dated activity entries with project and tags
- List entries for a specific day
- Generate a basic Markdown summary for a specific day
- Show a previously generated summary
- List previously generated summaries with date-range filters
- Store all data locally under
~/.devlog/ - Report version/build info and self-update from GitHub releases
# Initialize DevLog data/config
devlog init
# Log an activity
devlog add "Fixed pagination bug on transactions list" -p bitfinance -t frontend --date 2026-04-14
# View today's entries
devlog list
# View entries for a specific day
devlog list --date 2026-04-14
# Generate today's summary
devlog summary create
# Generate a summary for a specific day
devlog summary create --date 2026-04-14
# Show a saved summary
devlog summary show --date 2026-04-14Example summary output:
---
date: 2026-04-14
style: concise
projects: Echo, BitFinance
---
**Echo**
- Implemented JWT auth middleware
- Built refresh token rotation logic
**BitFinance**
- Fixed budget category filter bugDownload the latest release for your platform from the releases page.
Prerequisite: Go compatible with the version declared in go.mod.
git clone https://github.com/gustmrg/devlog
cd devlog
go build -o bin/devlog .Then move the binary somewhere in your PATH, for example:
mv bin/devlog /usr/local/bin/Initialize DevLog:
devlog initDevLog stores data locally under:
~/.devlog/
├── config.json
├── entries/
│ └── 2026-04-14.json
└── summaries/
└── 2026-04-14.md
Entry files are JSON. Summary files are Markdown with YAML frontmatter.
Creates the ~/.devlog/ directory and a default config.json.
devlog initCurrent note: this command uses safe config creation and will not overwrite an existing config file.
Logs a new activity entry.
devlog add <description> [options]Equivalent explicit form: devlog entry add <description> [options].
Options currently implemented:
| Option | Short | Description |
|---|---|---|
--project <name> |
-p |
Project name. Uses defaults.project from config if omitted. |
--tags <list> |
-t |
Comma-separated tags. |
--date <YYYY-MM-DD> |
Override entry date. Defaults to today. |
Examples:
devlog add "Implemented refresh token rotation" -p echo -t backend,auth
devlog add "Reviewed checkout API" -p shop --date 2026-04-14Displays entries for today or for a specific date.
devlog list [options]Equivalent explicit form: devlog entry list [options].
Options currently implemented:
| Option | Description |
|---|---|
--date <YYYY-MM-DD> |
Show entries for a specific date. Defaults to today. |
Examples:
devlog list
devlog list --date 2026-04-14Generates a basic Markdown summary from logged entries and saves it to ~/.devlog/summaries/.
devlog summary create [options]Options currently implemented:
| Option | Description |
|---|---|
--date <YYYY-MM-DD> |
Summarize a specific date. Defaults to today. |
Examples:
devlog summary create
devlog summary create --date 2026-04-14Lists previously generated summaries. With no flags, shows summaries from the current week.
devlog summary list [options]Options currently implemented:
| Option | Short | Description |
|---|---|---|
--week |
-w |
Show summaries from the current week (Monday–Sunday). This is the default when no flag is given. |
--month |
-m |
Show summaries from the current month. |
--from <YYYY-MM-DD> |
Start of date range. | |
--to <YYYY-MM-DD> |
End of date range. |
Examples:
devlog summary list
devlog summary list --week
devlog summary list --month
devlog summary list --from 2026-04-01 --to 2026-04-14Displays a previously generated summary.
devlog summary show [options]Options currently implemented:
| Option | Description |
|---|---|
--date <YYYY-MM-DD> |
Show summary for a specific date. Defaults to today. |
Examples:
devlog summary show
devlog summary show --date 2026-04-14Prints the installed version, commit, and build date.
devlog version [options]Options currently implemented:
| Option | Description |
|---|---|
--check |
Also query GitHub and report whether a newer release is available. |
Examples:
devlog version
devlog version --checkChecks GitHub for a newer release and, if found, downloads it, verifies its checksum, and replaces the running binary in place.
devlog update [options]Options currently implemented:
| Option | Short | Description |
|---|---|---|
--yes |
-y |
Skip the confirmation prompt. |
Examples:
devlog update
devlog update --yesConfiguration is stored at:
~/.devlog/config.json
Default shape:
{
"defaults": {
"project": "default",
"style": "concise",
"language": "pt-BR"
},
"llm": {
"enabled": false,
"provider": "openrouter",
"model": "openai/gpt-oss-120b:free",
"apiKeyEnvVar": "OPENROUTER_API_KEY"
}
}The config command interface is planned but not fully implemented yet.
The following features are planned or partially scaffolded, but should not be treated as stable yet.
devlog add --duration <minutes>/-d <minutes>devlog add -iinteractive entry creationdevlog entry edit <id>devlog entry delete <id>devlog list --weekdevlog list --project <name>devlog list --tag <name>
devlog summary create --weekdevlog summary create --style concise|detailed|formal|impersonaldevlog summary create --format <template>- summary templates from
~/.devlog/templates/
devlog config listdevlog config get <key>devlog config set <key> <value>
devlog summary create --ai- optional LLM narrative polishing
- support for configured provider/model/API key
- output language based on config, e.g.
pt-BRoren-US
- Go — language
- cobra — CLI framework
- viper — configuration
- fatih/color — terminal colors
- google/uuid — entry IDs
- go-yaml — summary frontmatter parsing
- GoReleaser — release automation
MIT