Sign in

Laurynas Keturakis

@laulau.land
904 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
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 · 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 · 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 · 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
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
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
<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 · 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
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
brb adding a claude code hook that exits with error 2 the moment it outputs "comprehensive"
100
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 · 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 · 12/08/2025
git remote add @tangled.sh
180
Laurynas Keturakis @laulau.land · 11/08/2025
a dear friend of mine launched an independent label for experimental music today and I helped make a fun website for it first album is very very good, go pre-order: www.glinted.info
glinted.info
Glinted
020
Laurynas Keturakis @laulau.land · 10/08/2025
trying to use atproto/bsky libraries in Cloudflare runtime is not having a great Sunday hacking time
000
Laurynas Keturakis @laulau.land · 24/07/2025
today's discovery has been being able to easily locally integrate changes from 3-4 different unmerged PRs and one local branch. jj definitely makes for a *really* good review tool
000
Laurynas Keturakis @laulau.land · 23/07/2025
ok, `jj` is very nice
110
Laurynas Keturakis @laulau.land · 18/07/2025
use your ai browsers to buy from artists
020
Laurynas Keturakis @laulau.land · 16/07/2025
"hey i got it working can you give my PR a quick look?
A snippet of GitHub PR showing 74 files changed with +13k and -1,2k line changes
071
Laurynas Keturakis @laulau.land · 15/07/2025
Is there a way to programmatically load some context into Claude Code using CLAUDE.md or hooks? Specifically need it to load the WezTerm's pane id where I have a dev server running so that it can independently look up its output using `wezterm cli get-text --pane-id <pane-id>`
100
Laurynas Keturakis @laulau.land · 01/07/2025
always funny when you ask Claude for an implementation plan and it starts listing: "Week 1-2: .... Week 3-4: ..." oh sweet summer child you're gonna be doing this all today
030
Laurynas Keturakis @laulau.land · 25/06/2025
so DSPy is cool
110
Laurynas Keturakis @laulau.land · 13/06/2025
debuggers are so good
030
Reposted by Laurynas Keturakis
Tangled @tangled.org · 03/06/2025
blog.tangled.sh/stacking @oppi.li wrote a great post on stacking (and reviewing!) pull requests using #jj-vcs on tangled!
blog.tangled.sh
jujutsu on tangled
tangled now supports jujutsu change-ids!
39317
Laurynas Keturakis @laulau.land · 04/06/2025
`git rebase --onto` is great and Idk how I didn't know about it earlier so I wrote about it. laulau.land/note/git-fu/
laulau.land
git-fu
141
Laurynas Keturakis @laulau.land · 03/06/2025
wrote up a note on a little shell script I use to read generated Claude Code reports: laulau.land/note/markdow...
laulau.land
markdown viewer
010
Laurynas Keturakis @laulau.land · 22/05/2025
new ink and switch alert www.inkandswitch.com/ink/notes/sk...
inkandswitch.com
Sketchy Calendar
Can we have a calendar that combines the convenience of a digital calendar with the simplicity and expressivity you get from pen & paper?
000
Laurynas Keturakis @laulau.land · 20/05/2025
one kind of hilarious thing of trying to combine neverthrow with Cloudflare's Workflow primitives is having to write wrappers that throw..neverthrow-returned errors as Cloudflare Workflows uses caught errors to trigger retries there's probably a better way to do this...
this is the code in the image:

/**
 * Wraps a neverthrow Result-returning function in a WorkflowStep.do call.
 * Throws an Error to trigger a retry by default, or a NonRetryableError if classified as fatal.
 */
async function runStep<T extends Rpc.Serializable<T>>(
  step: WorkflowStep,
  name: string,
  config: WorkflowStepConfig,
  fn: () => Promise<Result<T, TugboatError>>,
  isFatal: (error: TugboatError) => boolean = () => false,
): Promise<T> {
  return await step.do<T>(name, config, async (): Promise<T> => {
    const result = await fn();
    if (result.isOk()) {
      return result.value;
    }
    const error = result.error;
    if (isFatal(error)) {
      throw new NonRetryableError(error.message);
    }
    throw new Error(error.message);
  });
}
010
Laurynas Keturakis @laulau.land · 20/05/2025
taking the neverthrow library for a spin and all of the .andThen() calls remind me of this scene: www.youtube.com/watch?v=oqwz...
youtube.com
Dude, Where's My Car? (2/5) Movie CLIP - And Theeennn... (2000) HD
YouTube video by Movieclips
130
Laurynas Keturakis @laulau.land · 20/05/2025
Had a whole lot of fun giving my first conference talk at @squiggleconf.com last year. The crew was very supportive and the vibes were immaculate. If you thought “maybe i should try giving a talk”, then saw a CFP, got excited, and then later thought “ehh idk” then you should think again and apply.
010
Laurynas Keturakis @laulau.land · 13/05/2025
doing some first time (now second time) live streaming tomorrow building a Bluesky MCP on Cloudflare - we may or may not figure out auth too, come hang
031
Reposted by Laurynas Keturakis
James Vincent @jjvincent.bsky.social · 07/05/2025
some interesting historical context re: stories of "chatGPT-induced psychosis" is that when the radio and telephone were invented, there were similar reactions — some people believed they could tune their radio to the frequencies of heaven or received instructions from the dead via the telephone
241040262
Laurynas Keturakis @laulau.land · 02/05/2025
if English does become the main language of software expression (supplanting formal languages like code) I'll be very interested in linguistic/dialect analysis on how that changes the language itself
010
Laurynas Keturakis @laulau.land · 29/04/2025
I remember seeing a paper that I believe claimed LLMs being more effective at generating code that uses tools than using the tools directly but I can't find it anymore. What is the latest research/experience on this?
200
Laurynas Keturakis @laulau.land · 28/04/2025
realllly hoping civil defense planners all over Europe are taking scrupulous notes and learnings on human behavior and effects of the power outage in Iberian peninsula. I feel like these kind of occurrences might be more common in the near future whether by force of nature or the enemy
110
Laurynas Keturakis @laulau.land · 22/04/2025
you've heard of PDF in an LLM but have you heard of LLM in a PDF? PDFs continue to fascinate me as a concept, I still don't know if I understand them github.com/evanzhoudev/...
github.com
010