Sign in

Laurynas Keturakis

@laulau.land
906 followers 638 following 229 posts

Technical mutt. Interface enjoyer. Building software factory at fp.dev. Exploring and building tools in version control, open protocols, retrieval systems, mechinterp. Also: split keyboards. He/him

PostsRepliesMedia
Laurynas Keturakis @laulau.land · 26/05/2026
extremely feb 2026 energy but I just published a jj workspace manager pando uses OS copy-on-write and stores workspace info in one place so I can run multiple throwaway explorations on my machine without too much ceremony dl it, rip it, rewrite it in zig: github.com/laulauland/p...
github.com
GitHub - laulauland/pando: Per-feature copy-on-write workspaces with native jj integration
Per-feature copy-on-write workspaces with native jj integration - laulauland/pando
000
Laurynas Keturakis @laulau.land · 16/04/2026
slightly nitpicking but I don't think subsidized is the correct term though? The API costs are not served at net 0 value for Anthropic to begin with
110
Reposted by Laurynas Keturakis
dan @danabra.mov · 06/04/2026
this is so painful to read, i love it github.com/stephenturne...
github.com
918222
Laurynas Keturakis @laulau.land · 05/04/2026
If anyone would be down to co-organize a reading club for this in Amsterdam area, hit me up
040
Laurynas Keturakis @laulau.land · 05/04/2026
this is my happy place
010
Laurynas Keturakis @laulau.land · 01/04/2026
PSA no model drops this week but the new Designing Data Intensive Applications (aka the Hog Book) is out on paperback
000
Laurynas Keturakis @laulau.land · 22/03/2026
marimo notebook making my m1 pro go brrr
a table showing training loss decreasing row by row
010
Reposted by Laurynas Keturakis
Matt Webb 🌸🌼🌸 @genmon.fyi · 20/03/2026
“Intelligent drum & bass” is such a weirdly judgemental name for a music genre
262
Laurynas Keturakis @laulau.land · 13/03/2026
vacation reading on computational literacy: finding diSessa’s framing “building tools to build intuition” especially relatable lately (book: “Changing Minds: Computers, Learning, and Literacy”)
000
Laurynas Keturakis @laulau.land · 07/03/2026
same lol bsky.app/profile/laul...
030
Laurynas Keturakis @laulau.land · 07/03/2026
I saw a phrase somewhere that really resonated: “you need to know what’s there to prompt what’s next”. I find myself learning a lot and being inspired from just reading the LLM code. It’s also fun to ask LLMs to write ast-grep rules to never write try-catch again
130
Laurynas Keturakis @laulau.land · 07/03/2026
I also liked it as a genuinely interesting speculative design for what multiagent system and a “selfdriving codebase” would look like. It’s crazy but it’s also genuine
110
Laurynas Keturakis @laulau.land · 05/03/2026
any time codex/claude makes an elaborate awk/jq/sed sequence to debug a large stream of text I say a little thank you prayer in my mind for the unix geeks who have practiced this craft long before we had the magic token machines
040
Laurynas Keturakis @laulau.land · 02/03/2026
I've had a brief Nix era in 2023/24 that I since reverted from due to the usual Nix stuff (obscure errors, one particular way of doing things, pain of making changes mid-flight) I am now very tempted to return to it - most of the stuff that was a pain to deal as a human dev is excellent for agents
000
Laurynas Keturakis @laulau.land · 02/03/2026
oh hell yea
010
Laurynas Keturakis @laulau.land · 01/03/2026
with all the buzz around harness engineering and self-driving codebases, i keep returning to this text: petevilter.me/post/datalog...
petevilter.me
Codebase as Database: Turning the IDE Inside Out with Datalog | Pete Vilter
Introspectable and extensible IDEs with logic programming
0201
Laurynas Keturakis @laulau.land · 21/02/2026
everyone’s exploring different agent coordination messaging platforms when all we should do is get them to send diff patches over email git send-email exists for a reason
010
Laurynas Keturakis @laulau.land · 19/02/2026
this is very cool! Did you use TransformeLens/SAELens for any part of your work?
100
Reposted by Laurynas Keturakis
Szymon Kaliski @szymonkaliski.com · 12/01/2026
prototyping co-drawing with Gemini Flash 3 at Google in these demos "thinking" is disabled, which makes the model return tokens very quickly (all videos are realtime), and I find these rapid responses pretty good for the use-cases I'm experimenting with, like: executing simple diagrams ...
612619
Laurynas Keturakis @laulau.land · 15/02/2026
sunday evening stream, hacking on pi extensions, trying this out for the first time hiiii www.twitch.tv/laulau_land
twitch.tv
laulau_land - Twitch
Working on pi extensions
010
Laurynas Keturakis @laulau.land · 10/02/2026
ast-grep scan will continue until morale (and codeslop) improves
000
Laurynas Keturakis @laulau.land · 06/02/2026
just released a small update to jj-hunk - programmatic hunk selector for your jj-using agent New: -r flag. Split any revision, not just your working copy. support for YAML specs stable hunk IDs you can install it with: cargo install jj-hunk npx skills add laulauland/jj-hunk
000
Laurynas Keturakis @laulau.land · 28/01/2026
fine, here's another one: shell completions for running ! comands inside prompts. Hooks into your shell completions directly (unless you're on zsh, which idk why you'd be there) npmjs.com/pi-shell-com...
npmjs.com
000
Laurynas Keturakis @laulau.land · 28/01/2026
the source code for both is in my dotfiles (along with other extensions I've used ) github.com/laulauland/... github.com/laulauland/...
github.com
dotfiles/shared/.pi/agent/extensions/threads/README.md at main · laulauland/dotfiles
Contribute to laulauland/dotfiles development by creating an account on GitHub.
000
Laurynas Keturakis @laulau.land · 28/01/2026
2. pi-threads is simpler - just a direct rip from one of Amp's features that enables pi to explore previous conversation threads www.npmjs.com/package/pi-...
100
Laurynas Keturakis @laulau.land · 28/01/2026
for longer conversations I noticed this method retains a lot more detail in my compaction summaries so I don't fear that dreaded context threshold anymore I also can tune it a bit more easily by prescribing more ways to explore the conversation with the bash tools
100
Laurynas Keturakis @laulau.land · 28/01/2026
1. pi-agentic-compaction replaces default compaction with: - loading conversation into a virtual file - requesting a small and fast LLM (Cerebras or just use Haiku) to explore it with bash (just-bash from @industrialempathy.com) and summarize www.npmjs.com/package/pi-...
npmjs.com
npm: pi-agentic-compaction
Pi extension for intelligent conversation compaction using a virtual filesystem and LLM exploration. Latest version: 0.2.1, last published: 20 minutes ago. Start using pi-agentic-compaction in your project by running `npm i pi-agentic-compaction`. There are no other projects in the npm registry using pi-agentic-compaction.
131
Laurynas Keturakis @laulau.land · 28/01/2026
pi (a very good and very shitty coding agent from @mariozechner.at) has a very powerful extension system that I already raved about. Now that it supports npm/git-based installs I published a couple of mine that I've been using daily
140
Laurynas Keturakis @laulau.land · 27/01/2026
Java still holds software development in its iron grip
120
Laurynas Keturakis @laulau.land · 27/01/2026
<niche-CI-content-alert> wild that the most common standardized format for reporting test results is a *loose* standard JUnit XML really hoping this changes in 2026 now that we're mostly focused on reviewing/reporting on code </niche-CI-content-alert>
130
Laurynas Keturakis @laulau.land · 25/01/2026
and of course it has the ace jump functionality too
000
Laurynas Keturakis @laulau.land · 25/01/2026
added revision search to Tatami that supports search by change id, keywords in messages, and also niche but fun stuff like revset queries (you can query "pol-" to go to the parent of "pol" revision)
100
Laurynas Keturakis @laulau.land · 18/01/2026
getting to the point where I'm really liking the experience of Tatami - a GUI I'm building for jj - uses jjui/vim-style keybindings for navigation - has overview and detail screens - fast! Uses @tanstack.com DB to interface via @tauri.app IPC - uses diffs.com of course
110
Laurynas Keturakis @laulau.land · 11/01/2026
hoping this eventually makes into core jj github.com/jj-vcs/jj/is...
github.com
FR: Programmatically selecting hunks · Issue #8218 · jj-vcs/jj
Is your feature request related to a problem? Please describe. Currently, jj split and jj commit -i require an interactive diff editor (TUI or GUI) to select hunks. While file-level splitting works...
000
Laurynas Keturakis @laulau.land · 11/01/2026
still figuring out edge cases and tweaking the skill file but it's been great for asking Claude to "please build me a narrative of all the changes you've made that makes sense for me"
100
Laurynas Keturakis @laulau.land · 11/01/2026
$ jj-hunk list {"src/lib.ts": [{"index": 0, ...}, {"index": 1, ...}, {"index": 2, ...}]} $ jj-hunk split '{"files": {"src/lib.ts": {"hunks": [0, 2]}}, "default": "reset"}' "refactor" Hunks 0 and 2 go into the commit, hunk 1 stays in working copy.
100
Laurynas Keturakis @laulau.land · 11/01/2026
with jj-hunk you can list all of the file changes per hunk in json and then express the changes you want committed or left in working copy github.com/laulauland/j...
github.com
GitHub - laulauland/jj-hunk: Programmatic hunk distribution in jj
Programmatic hunk distribution in jj. Contribute to laulauland/jj-hunk development by creating an account on GitHub.
100
Laurynas Keturakis @laulau.land · 11/01/2026
needed a tool to make it easier for agents to reorganize commits and hunks into logical narratives that make it easier to review code jj split is great but requires interactive TUI that's still a tricky territory for Claude so here's jj-hunk - programmatic hunk selection for jj
110
Laurynas Keturakis @laulau.land · 04/01/2026
I wrote up how my workflows with agents and coding evolved over 2025 gearing up for the first week of work already but if you're still in the mood to read blog posts - here you go: laulau.land/working-with...
laulau.land
how I worked with agents in 2025
2025 has transformed how I work as an engineer. Many previous assumptions I had about my profession have gone up in the air yet some have remained. What follows...
010
Laurynas Keturakis @laulau.land · 04/12/2025
it's atuin wrapped time! story of my 2025 shell is that I adopted jj halfway through the year (you can see lg - lazygit - decline) and mostly switched projects from pnpm (shorthand: pn) to bun
030
Laurynas Keturakis @laulau.land · 07/10/2025
Claude's thinking hat but it says "comprehensive"
000
Laurynas Keturakis @laulau.land · 07/10/2025
brb adding a claude code hook that exits with error 2 the moment it outputs "comprehensive"
100
Laurynas Keturakis @laulau.land · 07/10/2025
overall feels like a Good Thing, I'm glad that they chose MCP to power this and I feel more certain than ever that TypeScript is the best tool to build MCPs - the DX of linking tool outputs and getting the typed data in UI is unbeatable lots to do for mcp-lite!
020
Laurynas Keturakis @laulau.land · 07/10/2025
you need to link resources with your UI components and you need to wire up your resources with tools - it's odd that they chose to link the latter using a special _meta field rather than MCP embedded/linked resources but maybe I'm missing something
The image shows a code snippet written in JavaScript (or TypeScript). It defines a tool registration using server.registerTool with the name "pizza-albums". The tool has a title "Show Pizza Album" and metadata (_meta) that includes an openai/outputTemplate field pointing to "ui://widget/pizza-albums.html", along with two other fields for invocation messages: "Hand–tossing an album" and "Served a fresh album". The tool expects an input schema with one field pizzaTopping of type string. The async function returns an object with content (an array containing a text message: "Rendered a pizza album!") and an empty structuredContent object.

A highlighted line draws attention to the "openai/outputTemplate": "ui://widget/pizza-albums.html", entry.
130
Laurynas Keturakis @laulau.land · 07/10/2025
ok so raw thoughts while exploring OpenAI's new Apps SDK the difficult thing right now is with the existing tooling you have to run two servers: one to serve your assets, one to drive the MCP server logic
120
Laurynas Keturakis @laulau.land · 06/09/2025
ok so I accidentally read this as “personality discord design hackathon”
110
Laurynas Keturakis @laulau.land · 05/09/2025
launched mcp-lite today: github.com/fiberplane/mcp it's a lighter, minimal library to create your MCP servers in TypeScript that can work on any runtimes and can work with any Standard Schema vendors
github.com
GitHub - fiberplane/mcp: Lightweight, composable MCP framework for TypeScript
Lightweight, composable MCP framework for TypeScript - fiberplane/mcp
282
Laurynas Keturakis @laulau.land · 02/09/2025
if you're publishing an npm library today - what is the standard to inform coding agents about its API (is there)? Something like AGENTS.md but that you can embed in the package.
100
Laurynas Keturakis @laulau.land · 20/08/2025
my favorite place on the internet for at least 15 years straight
010
Laurynas Keturakis @laulau.land · 15/08/2025
tbh I also could probably just as easily work in git as I have for years. What converted me: - fearless rebase and context switching between branches (no stage/stash/pop dance) - fake-merge unmerged branches to test if multiple changes work together well - jj undo and op log if I f things up
140