textpod.el v0.3.0
Another round of improvements of textpod.el, a companion Emacs package to Textpod.
Custom ID format - attribute name and prefix
Added two defcustom options in textpod.el:
textpod-id-property(default"TEXTPOD_ID") - name of the Org property used to store the note id.textpod-id-prefix(default"") - prefix prepended to ids when stored, stripped before sending requests to the server.
Introduced textpod--strip-prefix helper and updated all id call
sites (textpod-open-current-note, textpod-org-heading-to-note,
textpod-org-region-to-note) to respect these configs.
textpod-set-id sets ID without creating a node
I need a function to create texpod id property without sending note to the server. This is needed to submit old notes so they have proper timestamp.
Added textpod-set-id: an interactive command that sets
textpod-id-property on the current heading (with textpod-id-prefix)
derived from a time as YYYYMMDDhhmmss, without making any HTTP
request.
- No prefix arg → uses
(current-time). - With prefix arg → prompts via
org-read-date, so the note can be back-dated before later uploading withtextpod-org-heading-to-note.
Quickly getting to Textpod notes
Using Ack is possible, placing point on a file-name and pressing {H-RET} will call visit-source and go directly to the line.
ack ":ID:\s*textpod_" *.org | grep -v 2026-04-22 | head -n 20
2026-04-12.org:226::ID: textpod_20260412124048
2026-04-13.org:10::ID: textpod_20260414214110
2026-04-13.org:237::ID: textpod_20260414212612
2026-04-13.org:247::ID: textpod_20260414224720
2026-04-13.org:263::ID: textpod_20260414210103
2026-04-13.org:314::ID: textpod_20260414224944
2026-04-16.org:12::ID: textpod_20260416100352
2026-04-16.org:97::ID: textpod_20260417092822
2026-04-21.org:205::ID: textpod_20260421120000
Since I made my Textpod notes to be Org-roam notes, I can query them directly from SQLite DB.
-
(sqlite-mode-open-file "~/.config/emacs/org-roam.db")
select id, file, title from nodes n where n.id like '"textpod_%"';
| textpod_20260329123259 | ~/Notes/2026-03.org | Standalone HTML Galleries |
| textpod_20260315124829 | ~/Notes/2026-03.org | Build HackerNews Legible Frontend |
| textpod_20260415130636 | ~/Notes/2026-04.org | Improve public notes |
| textpod_20260415205822 | ~/Notes/2026-04.org | “Why Kim Wexler Was The Real Villain of Better Call Saul” by BreakingHub (19 min) |
| textpod_20260415210948 | ~/Notes/2026-04.org | “Linus Lays down the Law” – The PrimeTime (ThePrimeagen), 13 min |
| textpod_20260412124048 | ~/Notes/daily/2026-04-12.org | Improve HackerNews Legible Frontend |
| textpod_20260414214110 | ~/Notes/daily/2026-04-13.org | Interview about k8s setup in Amazon |
| textpod_20260414212612 | ~/Notes/daily/2026-04-13.org | kumo – local AWS emulator in Go |
| textpod_20260414224720 | ~/Notes/daily/2026-04-13.org | Snowflake MCP server |
| textpod_20260414210103 | ~/Notes/daily/2026-04-13.org | Claude Code quota exhausted / degraded quality |
| textpod_20260414224944 | ~/Notes/daily/2026-04-13.org | Trying Textpod once again |
| textpod_20250612070826 | ~/Notes/html.org | I'm betting on HTML |
| textpod_20260421120000 | ~/Notes/daily/2026-04-21.org | Rewrite Textpod to Go |
| textpod_20260416100352 | ~/Notes/daily/2026-04-16.org | Advice to org-roam-dailies-goto-today |
| textpod_20260417092822 | ~/Notes/daily/2026-04-16.org | Links <2026-04-16 Thu> |
| textpod_20260422124810 | ~/Notes/daily/2026-04-22.org | textpod.el v0.3.0 |
[TK: :colnames yes got broken for some reason].
My textpod.el config
The config automatically makes notes published to Textpod as Org-roam nodes.
(use-package textpod
:config
(setq textpod-id-property "ID"
textpod-id-prefix "textpod_"
textpod-token (cadr (auth-source-user-and-password "finita.myaddr.dev" "textpod"))
;;textpod-url "/notes"
textpod-url "http://localhost:3000/notes"
)
:bind (("C-c b x" . textpod-set-id)
("C-c b b" . textpod-org-heading-to-note)
("C-c b o" . textpod-open-current-note)))
Updates:
- <2026-04-23 Thu>: add keybindings
Links <2026-04-16 Thu>
- robinovitch61/jeeves: AI agent conversation history browser
- calcom/cal.diy: Scheduling Software for Online Bookings
- JuliusBrussee/caveman: why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
- JuliusBrussee/cavekit: A Claude Code plugin that turns natural language into blueprints, blueprints into parallel build plans, and build plans into working software with automated iteration, validation, and cross-model peer review.
- affaan-m/everything-claude-code: The agent harness performance
optimization system. Skills, instincts, memory, security, and
research-first development for Claude Code, Codex, Opencode, Cursor
and beyond.
- Skills | ECC Selective Install Builder (SaaS around skills)
- forrestchang/andrej-karpathy-skills: A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
- miolini/autoresearch-macos: AI agents running research on single-GPU nanochat training automatically adopted for MacOS
- karpathy/nanochat: The best ChatGPT that $100 can buy.