<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: dtkav</title><link>https://news.ycombinator.com/user?id=dtkav</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 18 Apr 2026 14:13:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dtkav" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dtkav in "Introduction to Obsidian"]]></title><description><![CDATA[
<p>Thanks for the kind words Chris :)</p>
]]></description><pubDate>Tue, 14 Apr 2026 16:19:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47767635</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47767635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47767635</guid></item><item><title><![CDATA[New comment by dtkav in "Microsoft is employing dark patterns to goad users into paying for storage?"]]></title><description><![CDATA[
<p>> I don't think Obsidian does synchronous collaboration well (could be wrong) but for asynchronous collaboration it ought to be fine.<p>If you want to do real-time collaboration in Obsidian there are a few plugins available. relay.md (mine), peerdraft, screengarden, and YAOS are some options.</p>
]]></description><pubDate>Fri, 10 Apr 2026 17:43:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47721387</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47721387</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47721387</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: Opensidian: Local-first notes in the browser with POSIX shell and sync"]]></title><description><![CDATA[
<p>It seems like you're using stable IDs for the links. Did you run into issues using the name like Obsidian does?</p>
]]></description><pubDate>Tue, 07 Apr 2026 16:48:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47678122</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47678122</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47678122</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: Opensidian: Local-first notes in the browser with POSIX shell and sync"]]></title><description><![CDATA[
<p>This is really cool. I'm excited to dive into the code later today.<p>Im building something similar but have been working from the opposite direction.<p>I started by making Obsidian real time collaborative (relay.md), and have been slowly heading in the direction of yjs backed filesystem (that supports the obsidian graph "protocol").<p>IMO the obsidian editor is best-in-class, and the important thing is owning sync. I also wish it was open source, but I'm also impressed with their business model (100% user funded) so I'm happy to support them.<p>I've found that many devs starting with the infrastructure tend to hand wave conflict UX with yjs. It can be useful to support LWW in certain scenarios like updating links across many files, or frontmatter updates.<p>Automated find-and-replace is particularly bad in yjs/ytext because deletes are idempotent but inserts are not. race conditions trigger broken links. (I call this the "machine edits" problem, not sure if there is a better name).<p>I think the other underexplored discussion for local first apps is how to build a business so that you can afford to work on it full time.</p>
]]></description><pubDate>Tue, 07 Apr 2026 15:48:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47677155</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47677155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47677155</guid></item><item><title><![CDATA[New comment by dtkav in "Practical LLM developer project management: Obsidian Kanban plan MD files in Git"]]></title><description><![CDATA[
<p>Nice! Do you have a skill that describes this workflow?</p>
]]></description><pubDate>Mon, 06 Apr 2026 17:10:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47663772</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47663772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47663772</guid></item><item><title><![CDATA[New comment by dtkav in "A Markdown textfile based Kanban board in a single HTML file"]]></title><description><![CDATA[
<p>The Obsidian kanban plugin does this. I recently added support for it in my real-time-collaboration plugin (Relay).</p>
]]></description><pubDate>Sat, 21 Mar 2026 16:30:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47468504</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47468504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47468504</guid></item><item><title><![CDATA[New comment by dtkav in "Starlink militarization and its impact on global strategic stability (2023)"]]></title><description><![CDATA[
<p>I was early at Planet (and fresh out of college) and the transition internally towards govt money was very painful for the bright eyed save-the-world hackers internally.<p>The initial technical architecture was aligned with broad good (low res, global, daily, openly available), but the shift towards selling high res satellite capabilities directly to governments has been tough to see.<p>Their role of providing a public ledger is still a net good thing IMO, and i doubt Planet is adding much increased capability to the US war fighter (they have way better stuff). Harder to say for their deals with other governments that have fewer native space capabilities.</p>
]]></description><pubDate>Sat, 14 Mar 2026 15:40:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47377776</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47377776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47377776</guid></item><item><title><![CDATA[New comment by dtkav in "Free, private social media with Obsidian and Dropbox"]]></title><description><![CDATA[
<p>This is really wholesome. Thanks for sharing.</p>
]]></description><pubDate>Sat, 14 Mar 2026 04:25:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47373336</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47373336</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47373336</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: YAOS – A 1-click deploy, real-time sync engine for Obsidian"]]></title><description><![CDATA[
<p>We let docs converge independently. This is a problem for bases in the current sync engine, but something we're resolving soon with "continuous-background-sync". I think it is also more scalable and matches the file model better.<p>We landed on folder-level sync rather than vault-level sync, so we have a map CRDT that corresponds with each shared folder. In our model these CRDTs are the ones that can explode, whereas the doc-level ones can kind of be fixed up by dragging it out of the folder and back in again which grabs a new "inode" for it.<p>If I were to start again I think I'd try to build a file-based persistence layer based on prolly-trees to better adhere to the file-over-app philosophy.</p>
]]></description><pubDate>Fri, 13 Mar 2026 23:28:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47371392</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47371392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47371392</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: YAOS – A 1-click deploy, real-time sync engine for Obsidian"]]></title><description><![CDATA[
<p>IMO Obsidian Sync is a fantastic solution for e2ee device sync in Obsidian. It is a good/honest business model to fund the development of Obsidian.<p>What complaints are you hearing?</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:15:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368441</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47368441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368441</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: YAOS – A 1-click deploy, real-time sync engine for Obsidian"]]></title><description><![CDATA[
<p>Great work Kavin!<p>This is a super interesting space, and lots of fun and difficult problems to tackle.<p>A few trailheads of interesting complexity:<p>1. Concurrent machine edits - in particular handling links to renamed files across devices. This is a case where CRDTs fall over because they converge but are not idempotent. For example renaming a file [[hello 1]] to [[hello 2]] when multiple devices are online can result in [[hello 22]] because deletes merge before inserts.<p>2. Ingesting disk edits in the age of claude code. The intended behavior can change based on what I'm calling the "intent fidelity spectrum". I've been using that spectrum as a guide for when to apply merges in "text space" vs. "crdt space", including sometimes withholding ops based on origin (e.g. from obsidian processFile calls), cancelling them) or offline status. For example, if you made edits while offline and have a least-common-ancestor you may be able to look for conflicts via diff3 and then conditionally use diff-match-patch if there are no conflicts, or surface the conflict to the user if there's not a good merge strategy based on the low levels of intent.<p>3. History and memory management - how do you recover state if a user has a competing sync service which causes an infinite loop in file creation/deletion. This can be difficult with CRDTs because the tombstones just keep syncing back and forth between peers and can be difficult to clear. This is significantly worse if you use Y.PermanentUserData (do not recommend...).</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:12:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368390</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47368390</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368390</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: OneCLI – Vault for AI Agents in Rust"]]></title><description><![CDATA[
<p>I'm working on something similar with <a href="https://github.com/dtkav/agent-creds" rel="nofollow">https://github.com/dtkav/agent-creds</a> though I keep growing the scope.<p>The model is solid. It feels like the right way to use YOLO mode.<p>I've been working on making the auth setup more granular with macaroons and third party caveats.<p>My dream is to have plugins for upstreams using OpenAPI specs and then make it really easy to stitch together grants across subsets of APIs.<p>I think there's a product in here somewhere...</p>
]]></description><pubDate>Fri, 13 Mar 2026 04:25:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47360678</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47360678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47360678</guid></item><item><title><![CDATA[New comment by dtkav in "Obsidian Sync now has a headless client"]]></title><description><![CDATA[
<p>Hey, developer behind Relay here.<p>Yes, our sync engine is home-grown. We use CRDTs to provide real-time google-docs-like collaboration which is not something Obsidian supports (yet... i think they are working on it).<p>Note that you can self-host a Relay server and join it to our network. This gives you complete control over your data and unmetered storage. We do still charge for seats if you have more than 3 collaborators.</p>
]]></description><pubDate>Mon, 02 Mar 2026 19:41:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47223042</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=47223042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47223042</guid></item><item><title><![CDATA[New comment by dtkav in "Deno Sandbox"]]></title><description><![CDATA[
<p>I've been working on something similar (with claude code).<p>It's a sandbox that uses envoy as a transparent proxy locally, and then an external authz server that can swap the creds.<p>The idea is extended further in that the goal is to allow an org to basically create their own authz system for arbitrary upstreams, and then for users to leverage macaroons to attentuate the tokens at runtime.<p>It isn't finished but I'm trying to make it work with ssh/yubikeys as an identity layer. The authz macaroon can have a "hole" that is filled by the user/device attestation.<p>The sandbox has some nice features like browser forwarding for Claude oauth and a CDP proxy for working with Chrome/Electron (I'm building an Obsidian plugin).<p>I'm inspired by a lot of the fly.io stuff in tokenizer and sprites. Exciting times.<p><a href="https://github.com/dtkav/agent-creds" rel="nofollow">https://github.com/dtkav/agent-creds</a></p>
]]></description><pubDate>Wed, 04 Feb 2026 03:30:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46881106</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=46881106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46881106</guid></item><item><title><![CDATA[New comment by dtkav in "Ask HN: Do you also "hoard" notes/links but struggle to turn them into actions?"]]></title><description><![CDATA[
<p>I think mostly social accountability.<p>My cofounder actually has a bunch of skills with claude code that surface context into our daily notes (from our meeting notes, transcripts, crm, gmail, etc), but it's sort of on him to show that it is useful... so while he is still "hoarding" outside of the shared context it is with an eye toward delivering actual value inside of it.<p>Feels pretty different from the fauxductivity traps of solo second brain stuff.</p>
]]></description><pubDate>Sat, 31 Jan 2026 07:51:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46834409</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=46834409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46834409</guid></item><item><title><![CDATA[New comment by dtkav in "Ask HN: Do you also "hoard" notes/links but struggle to turn them into actions?"]]></title><description><![CDATA[
<p>I work on a plugin/platform that makes Obsidian collaborative (relay.md).<p>Working with other people gives you good habits against hording because you have a sense of the audience and what might be useful to them.<p>We also support the kanban plugin so that works well to track and share what we're working on.</p>
]]></description><pubDate>Sat, 31 Jan 2026 01:42:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46832465</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=46832465</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46832465</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: Dwm.tmux – a dwm-inspired window manager for tmux"]]></title><description><![CDATA[
<p>I'm rendering a few dozen terminals in a website, and for all of the inactive ones i render and serve a jpg of the "current screen" of ansi escape codes from kitty.<p>I've found this to be a difficult thing to get. abduco doesn't have current state, and I dont want all of the complexity of tmux. I also don't want the entire scrollback history (until i click into a given terminal and connect with xterm).<p>I'll give zmx a closer look. Thank you.</p>
]]></description><pubDate>Fri, 30 Jan 2026 05:20:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46820808</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=46820808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46820808</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: Nuggetz – Turn AI chat threads into a searchable team knowledge base"]]></title><description><![CDATA[
<p>We just have all meeting transcripts go to Obsidian (and get processed/mined) as well as our collaborative notes (our startup makes Obsidian collaborative) for our standups and then use claude code to summarize each day into the next.<p>We avoid the browser agents entirely, and thus avoid the scattered context. Claude code + markdown files in our vault.<p>It works remarkably well. I am bullish on unix tools and text files - dom parsing, rag, etc feels like solutions to unnecessary problems.</p>
]]></description><pubDate>Thu, 29 Jan 2026 17:40:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46813535</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=46813535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46813535</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: Dwm.tmux – a dwm-inspired window manager for tmux"]]></title><description><![CDATA[
<p>ooh nice. Is there a way to get snapshots of the current view? I hacked together something with kitty and abduco but it is definitely a hack...<p>I dont want tmux or anything that gives me additional key bindings or modes, just the ability to pick up my work on another machine.</p>
]]></description><pubDate>Thu, 29 Jan 2026 08:55:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46807523</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=46807523</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46807523</guid></item><item><title><![CDATA[New comment by dtkav in "Show HN: A MitM proxy to see what your LLM tools are sending"]]></title><description><![CDATA[
<p>nice, I'm working on something similar with macroons so the tokens can be arbitrarily scopes in time and capability too.<p>Mine uses an Envoy sidecar on a sandbox container.<p><a href="https://github.com/dtkav/agent-creds" rel="nofollow">https://github.com/dtkav/agent-creds</a></p>
]]></description><pubDate>Thu, 29 Jan 2026 04:16:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46805757</link><dc:creator>dtkav</dc:creator><comments>https://news.ycombinator.com/item?id=46805757</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46805757</guid></item></channel></rss>