cd /news/developer-tools/show-hn-worklog-structured-memory-fo… · home topics developer-tools article
[ARTICLE · art-74460] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Show HN: Worklog, structured memory for Agent in one SQLite table

Worklog (wl) is a new open-source CLI tool that stores structured work logs, tasks, and daily plans in a single SQLite table, designed to serve as persistent memory for AI agents. The tool outputs plain text or JSON and includes a bundled skill for Claude Code, enabling AI assistants to read and write work records directly. Worklog requires Python 3.9+ and is installable via pipx or uv.

read4 min views1 publishedJul 26, 2026
Show HN: Worklog, structured memory for Agent in one SQLite table
Image: source

🌐 English · 中文

A local CLI worklog and task tracker backed by SQLite. Add tasks, log what you did, plan your day — all from the terminal, all in one file.

Why wl:

Everything in one place. Time (year → month → week → day) and projects (area → task) share the same tree and the same id space. No switching between apps.A daily rhythm that sticks. Set a goal in the morning, log as you go, recap at night.wl day

replays the whole day with stats.Structured and queryable. Every item carries status, priority, tags, props, and relations. Filter withwl ls

, track dependencies/splits withwl relation

(block

/split

/related

), search by meaning withwl query

.AI-ready out of the box. Every command outputs plain text or-o json

. There's a bundledClaude Code skillso an AI assistant can drive it directly.Local and transparent. One SQLite file, no daemon, no account. You own the data.

pipx install pyworklog   # or: uv tool install pyworklog
wl init

Requires Python ≥ 3.9. Shell completion:

wl print-completion fish | source        # fish — add to config.fish
eval "$(wl print-completion bash)"       # bash — add to .bashrc
eval "$(wl print-completion zsh)"        # zsh  — add to .zshrc
wl add "write the report" -p A    # add a task, priority A
wl log 1 "drafted the intro"      # log progress → status auto-flips to DOING
wl done 1                         # mark done
wl day                            # replay today: plan + logs + stats

Start the day with a goal, log as you work, close with a recap. wl day

shows the full picture.

wl goal "ship the landing page today"     # morning intent (bare = read back)
wl log 42 "finished the hero section"     # progress note mid-day
wl recap "shipped it, copy still TBD"     # evening summary (bare = read back)
wl day                                    # the whole day: plan, logs, what changed

Real output from wl demo

(the tasks carry -t work

/ -t personal

— that tag is what sorts them into the day's buckets):

#9 2026-07-16 Thu · workday
  > 🎯 Send out the monthly report [1/1] ✅
     1. [x] #3 Write the report summary
  > 📝 Recap: Focus nailed - report's out, and I didn't chase the new idea. Weak spot:
    only scratched the AI tutorial. (written at 07-16 12:20)
  work
    ▸ planned
      [x] #3 [# ] Write the report summary
        · Draft written, sent to the team
  personal
    ▸ planned
      [ ] #4 [# ] Do the AI-agents tutorial

  ── 2026-07-16: 1/1 tasks with progress · DONE 1 · planned·not-done 1

wl tree --by project

groups the same data by project instead of by time:

▸ #1 [#A] Ship the monthly report  (1)
[x] [# ] #3 Write the report summary
▸ #2 [#A] Learn how AI agents work  (2)
[ ] [# ] #4 Do the AI-agents tutorial
[ ] [# ] #10 Build a tiny agent myself

Assign tasks to dates and move them through a status machine.

wl add "review PR" --parent 7             # add under a project
wl sched 42 tomorrow                      # plan for tomorrow; also: next-week, +3w
wl start 42                               # clock in
wl stop 42                                # clock out — elapsed recorded
wl defer 42 next-month                    # push to backlog; also: someday
wl done 42                                # close

Statuses: TODO → DOING → DONE · also LATER (backlog) · WAIT (blocked) · CANCELED

wl find "deploy"                           # full-text, hits highlighted
wl query "follow up with the client"       # finds related even if exact words differ

wl query

uses any OpenAI-compatible embedding server. For best results (LanceDB + CJK segmentation): pip install 'pyworklog[semantic]'

.

Every command accepts -o json

— place it before or after the verb.

wl -o json ls --para project              # array of open projects
wl show 42 -o json | jq '.logs'           # node detail, pipe to jq
wl -o json active                         # currently running tasks
wl add "task" -p A -t work                # new task, priority, tags
wl log 42 "what I did"                    # log progress
wl done 42                                # close; also: defer / cancel / wait

wl goal "deliver X by EOD"                # today's goal  (bare = read)
wl recap "shipped, one blocker left"      # end-of-day summary (bare = read)
wl day                                    # today: plan + logs + stats
wl sched 42 2026-07-01                    # schedule; also: tomorrow / +3w / someday

wl show 42                                # full detail + timeline
wl ls --para project -t work              # list open work projects
wl tree                                   # whole structure, top-down
wl summary --week 2026-W25                # weekly aggregate by project

wl find "keyword"                         # full-text search
wl query "follow up with the client"      # semantic + keyword hybrid

Every command has wl <cmd> --help

; wl help <topic>

browses topic docs inline.

── more in #developer-tools 4 stories · sorted by recency
── more on @worklog 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-worklog-stru…] indexed:0 read:4min 2026-07-26 ·