<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: nberkman</title><link>https://news.ycombinator.com/user?id=nberkman</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Jul 2026 18:24:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nberkman" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Show HN: Sidereon: GNSS and Astrodynamics (Python, Rust, JavaScript, C, Elixir)]]></title><description><![CDATA[
<p>I’ve been building Sidereon, an MIT-licensed GNSS positioning and astrodynamics engine.<p>The submission is a browser demo running the Rust core client-side through WASM. Source for this:<p><a href="https://github.com/neilberkman/sidereon" rel="nofollow">https://github.com/neilberkman/sidereon</a><p>The idea is one engine for both the receiver and spacecraft sides: SPP/RTK/PPP, RINEX/RTCM/NTRIP, Galileo HAS/SSR, GNSS/INS fusion, SGP4 and numerical propagation, orbit determination, conjunction screening, pass prediction, reference frames, and time systems. Python, Rust, JavaScript/WASM, C, and Elixir all use the same core.<p>Several features came directly from open issues in widely used GNSS and astrodynamics libraries: multi-constellation ARAIM, Galileo state-space corrections, station-displacement corrections, sidereal multipath filtering, and track cleanup without an IMU.<p>Tests compare results with RTKLIB, the 33-satellite Vallado/CelesTrak SGP4 verification corpus, pinned Skyfield frame vectors, Karney’s test set, and the published WG-C ARAIM example. The Vallado corpus and Skyfield vectors match at 0 ULP.<p>The language-specific interfaces are here:<p>Python: <a href="https://github.com/neilberkman/sidereon-python" rel="nofollow">https://github.com/neilberkman/sidereon-python</a><p>JavaScript/WASM: <a href="https://github.com/neilberkman/sidereon-wasm" rel="nofollow">https://github.com/neilberkman/sidereon-wasm</a><p>C: <a href="https://github.com/neilberkman/sidereon-c" rel="nofollow">https://github.com/neilberkman/sidereon-c</a><p>Elixir: <a href="https://github.com/neilberkman/sidereon-ex" rel="nofollow">https://github.com/neilberkman/sidereon-ex</a><p>Much of the code was written with AI coding agents, with me very much in the loop.<p>I'd really appreciate any feedback!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48979223">https://news.ycombinator.com/item?id=48979223</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 20 Jul 2026 14:18:46 +0000</pubDate><link>https://sidereon.dev</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=48979223</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48979223</guid></item><item><title><![CDATA[New comment by nberkman in "How to stop Claude from saying load-bearing"]]></title><description><![CDATA[
<p>The one that matters.</p>
]]></description><pubDate>Tue, 14 Jul 2026 14:21:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48907354</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=48907354</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48907354</guid></item><item><title><![CDATA[New comment by nberkman in "GPT-5.6 Sol, along with Terra and Luna, will launch publicly this Thursday"]]></title><description><![CDATA[
<p>Sounds similar to the tool I built: <a href="https://github.com/neilberkman/ccrider#ccrider" rel="nofollow">https://github.com/neilberkman/ccrider#ccrider</a> (although it's OSS whereas yours appears to be commercial)</p>
]]></description><pubDate>Wed, 08 Jul 2026 06:50:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48828468</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=48828468</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48828468</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: Recall – Local project memory for Claude Code"]]></title><description><![CDATA[
<p>Somewhat related, I built ccrider [1], which indexes the session transcripts that agents already write to disk (Claude Code, Codex, Copilot) into a local SQLite FTS database. It has a TUI, CLI, and an MCP server so the agent can search past sessions itself. Same local-first idea, based the raw logs rather than a maintained digest. Should work nicely with recall as well.<p>[1] <a href="https://github.com/neilberkman/ccrider" rel="nofollow">https://github.com/neilberkman/ccrider</a></p>
]]></description><pubDate>Tue, 23 Jun 2026 12:28:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48643952</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=48643952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48643952</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: Hippo, biologically inspired memory for AI agents"]]></title><description><![CDATA[
<p>> Aren't tools like claude already store context by project in file system?<p>They do, the missing piece is a tool to access them. See comment about my tool that addresses this: <a href="https://news.ycombinator.com/item?id=47668270">https://news.ycombinator.com/item?id=47668270</a></p>
]]></description><pubDate>Mon, 06 Apr 2026 23:12:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47668626</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=47668626</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47668626</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: Hippo, biologically inspired memory for AI agents"]]></title><description><![CDATA[
<p>Cool project. I like  the neuroscience analogy with decay and consolidation.<p>I've been working on a related problem from the other direction: Claude Code and Codex already persist full session transcripts, but there's no good way to search across them. So I built ccrider (<a href="https://github.com/neilberkman/ccrider" rel="nofollow">https://github.com/neilberkman/ccrider</a>). It indexes existing sessions into SQLite FTS5 and exposes an MCP server so agents can query their own conversation history without a separate memory layer. Basically treating it as a retrieval problem rather than a storage problem.</p>
]]></description><pubDate>Mon, 06 Apr 2026 22:37:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47668270</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=47668270</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47668270</guid></item><item><title><![CDATA[New comment by nberkman in "How vibe coding is killing open source"]]></title><description><![CDATA[
<p>I get the concerns, but there's a flip side nobody's talking about: what about experienced developers who had years of ideas bottled up and never had the bandwidth?<p>I used to think open source was something I'd focus on when I retired. Instead I'm doing it now. I built Clippy (<a href="https://github.com/neilberkman/clippy" rel="nofollow">https://github.com/neilberkman/clippy</a>) from scratch, a much better bcopy, that fixes a real gap in pbcopy, and it hit 200 stars and Homebrew core in seven months. Neither of these would exist without AI assisted development. My DocuSign Elixir SDK sat basically unchanged from 2021 to 2025, other than a few external contributions. I knew it needed a full migration of the OpenAI code gen layer, LiveBook examples and a million other tweaks. With coding agents I implemented everything useful I could imagine.<p>Am I the only one? There must be other devs out there resurrecting stale projects or shipping tools they never had time for.</p>
]]></description><pubDate>Wed, 04 Feb 2026 05:05:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46881692</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=46881692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46881692</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: ccrider - Search and Resume Your Claude Code Sessions – TUI / MCP / CLI"]]></title><description><![CDATA[
<p>That makes resuming easier, if you remember to rename in your current session. But that doesn’t solve being able to search history from earlier in your current session or from your entire history of sessions. Or resuming sessions for which you’ve forgotten the name.</p>
]]></description><pubDate>Tue, 06 Jan 2026 21:43:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46519286</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=46519286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46519286</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: ccrider - Search and Resume Your Claude Code Sessions – TUI / MCP / CLI"]]></title><description><![CDATA[
<p>Ugh, thanks for flagging! Fixed.</p>
]]></description><pubDate>Tue, 06 Jan 2026 20:48:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46518465</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=46518465</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46518465</guid></item><item><title><![CDATA[Show HN: ccrider - Search and Resume Your Claude Code Sessions – TUI / MCP / CLI]]></title><description><![CDATA[
<p>I built a tool that stores your full Claude Code history to let you easily find and resume sessions. It has TUI, CLI and MCP interfaces. It's a single Go binary, and the session history is synced to SQLite each time you use it.<p>Default mode is the TUI with a session browser and full-text search. Once a session is selected you can browse and search within it, resume it or export to markdown.<p>The MCP server provides tools to let Claude search back through the session for pre-compact context or pull from prior sessions. I use this constantly.<p>I've seen elaborate continuity systems to give Claude Code access to history but this simple approach has been very effective.<p>Installation:<p>macOS: brew install neilberkman/tap/ccrider<p>Linux/other: git clone <a href="https://github.com/neilberkman/ccrider" rel="nofollow">https://github.com/neilberkman/ccrider</a> && cd ccrider && go build<p>MCP server: claude mcp add --scope user ccrider $(which ccrider) serve-mcp<p>Source: <a href="https://github.com/neilberkman/ccrider" rel="nofollow">https://github.com/neilberkman/ccrider</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46512501">https://news.ycombinator.com/item?id=46512501</a></p>
<p>Points: 19</p>
<p># Comments: 4</p>
]]></description><pubDate>Tue, 06 Jan 2026 14:14:24 +0000</pubDate><link>https://github.com/neilberkman/ccrider</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=46512501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46512501</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: Quibbler – A critic for your coding agent that learns what you want"]]></title><description><![CDATA[
<p>Submitted a PR with AWS Bedrock support: <a href="https://github.com/fulcrumresearch/quibbler/pull/5/files" rel="nofollow">https://github.com/fulcrumresearch/quibbler/pull/5/files</a> (credits!)</p>
]]></description><pubDate>Fri, 31 Oct 2025 14:04:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45772109</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=45772109</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45772109</guid></item><item><title><![CDATA[New comment by nberkman in "Scripts I wrote that I use all the time"]]></title><description><![CDATA[
<p>Updated, I appreciate it!</p>
]]></description><pubDate>Wed, 22 Oct 2025 21:22:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45675322</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=45675322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45675322</guid></item><item><title><![CDATA[New comment by nberkman in "Scripts I wrote that I use all the time"]]></title><description><![CDATA[
<p>Nice! Tangentially related: I built a (MacOS only) tool called clippy to be a much better pbcopy. It was just added to homebrew core. Among other things, it auto-detects when you want files as references so they paste into GUI apps as uploads, not bytes.<p><pre><code>  clippy image.png  # then paste into Slack, etc. as upload

  clippy -r         # copy most recent download

  pasty             # copy file in Finder, then paste actual file here
</code></pre>
<a href="https://github.com/neilberkman/clippy" rel="nofollow">https://github.com/neilberkman/clippy</a> / brew install clippy</p>
]]></description><pubDate>Wed, 22 Oct 2025 20:38:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45674846</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=45674846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45674846</guid></item><item><title><![CDATA[New comment by nberkman in "Multi-Core by Default"]]></title><description><![CDATA[
<p>Interesting - this is the exact problem José Valim cited when creating Elixir: he was working on Rails multi-core performance in 2010 and found that "writing multi-core software, which is software that runs on all cores with Ruby, was not really straightforward."[1] Ruby's GIL meant only one thread executes at a time.<p>Fleury's arriving at similar conclusions from the C/systems side: make multi-core the default, not an opt-in. Though his approach still requires explicit coordination (LaneIdx(), barriers, range distribution) vs BEAM where the scheduler automatically distributes processes across cores.<p>Different tradeoffs for different domains, but both are reacting to the same backwards reality where we program single-core-first on multi-core hardware.<p>[1] <a href="https://www.welcometothejungle.com/en/articles/btc-elixir-jose-valim" rel="nofollow">https://www.welcometothejungle.com/en/articles/btc-elixir-jo...</a></p>
]]></description><pubDate>Fri, 10 Oct 2025 15:58:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45540412</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=45540412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45540412</guid></item><item><title><![CDATA[New comment by nberkman in "Two things LLM coding agents are still bad at"]]></title><description><![CDATA[
<p>Inspired by the copy-paste point in this post, I added agent buffer tools to clippy, a macOS utility I maintain which includes an MCP server that interacts with the system clipboard. In this case it was more appropriate to use a private buffer instead. With the tools I just added, the server reads file bytes directly - your agent never generates the copied content as tokens. Three operations:<p>buffer_copy: Copy specific line ranges from files to agent's private buffer<p>buffer_paste: Insert/append/replace those exact bytes in target files<p>buffer_list: See what's currently buffered<p>So the agent can say "copying lines 50-75 from auth.py" and the MCP server handles the actual file I/O. No token generation, no hallucination, byte-for-byte accurate. Doesn't touch your system clipboard either.<p>The MCP server already included tools to copy AI-generated content to your system clipboard - useful for "write a Python script and copy it" workflows.<p>(Clippy's main / original purpose is improving on macOS pbcopy - it copies file references instead of just file contents, so you can paste actual files into Slack/email/etc from the terminal.)<p>If you're on macOS and use Claude or other MCP-compatible agents: <a href="https://github.com/neilberkman/clippy" rel="nofollow">https://github.com/neilberkman/clippy</a><p>brew install neilberkman/clippy/clippy</p>
]]></description><pubDate>Thu, 09 Oct 2025 20:12:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45532499</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=45532499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45532499</guid></item><item><title><![CDATA[New comment by nberkman in "Kurt Got Got"]]></title><description><![CDATA[
<p>Don't know why this is getting downvoted. Agree with this so hard, as a continually aggrieved Fly customer (close to becoming an ex-customer). The too cool for school schtick gets old fast when they don't have the goods to back it up.</p>
]]></description><pubDate>Thu, 09 Oct 2025 04:31:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45523519</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=45523519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45523519</guid></item><item><title><![CDATA[Show HN: Draggy – menu bar companion to clippy (better pbcopy)]]></title><description><![CDATA[
<p>You download files in your terminal but need to drag them to web upload fields. Switching to Finder kills flow. Draggy makes clipboard files draggable - copy any file → click menu bar → drag anywhere.<p>Part of a terminal clipboard suite that replaces pbcopy:<p>- clippy: Copy files from terminal that paste as actual files (not just contents)<p>- pasty: Copy file in Finder → `pasty` → file appears in current directory<p>- draggy: Makes clipboard files draggable for upload fields<p>Example workflow:<p><pre><code>    # download directly to clipboard
    curl -sL https://picsum.photos/300 | clippy    
    # Click draggy in menu bar
    # Drag to web form, Slack, email
</code></pre>
Recent downloads with interactive picker:<p><pre><code>    clippy -i        # choose from recent files
    clippy -r        # copy most recent download  
    clippy -r 5m     # all downloads from last 5 minutes
</code></pre>
Also includes MCP server - Claude Code can place text directly in your clipboard:<p><pre><code>    claude mcp add clippy /opt/homebrew/bin/clippy mcp-server
</code></pre>
Install:<p><pre><code>    brew install neilberkman/clippy/clippy              # CLI tools
    brew install --cask neilberkman/clippy/draggy       # Menu bar app
</code></pre>
Technical: CLI tools are Go with Objective-C bindings. draggy is Swift/SwiftUI with zero background activity - only checks clipboard when clicked.<p>Note: First launch shows macOS security warning (not code-signed). Run: `xattr -dr com.apple.quarantine /Applications/Draggy.app`</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44609345">https://news.ycombinator.com/item?id=44609345</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 18 Jul 2025 20:19:43 +0000</pubDate><link>https://github.com/neilberkman/clippy/blob/main/README.md</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=44609345</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44609345</guid></item><item><title><![CDATA[New comment by nberkman in "Claude Code Unleashed"]]></title><description><![CDATA[
<p>I tried Terragon on an open source repo I maintain and ended up with a PR: "Showing 11,643 changed files with 2,441,792 additions and 584 deletions." Yikes!</p>
]]></description><pubDate>Fri, 18 Jul 2025 13:52:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=44604656</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=44604656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44604656</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: Clippy – a better pbcopy for macOS that handles files properly"]]></title><description><![CDATA[
<p>Thanks. I just released a new version with UTI based MIME type detection as the primary method with a fallback to the existing content-based detection.</p>
]]></description><pubDate>Wed, 16 Jul 2025 20:51:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=44586633</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=44586633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44586633</guid></item><item><title><![CDATA[New comment by nberkman in "Show HN: Clippy – a better pbcopy for macOS that handles files properly"]]></title><description><![CDATA[
<p>clippy is a bit different from these - rather than requiring manual flags for MIME types, it automatically detects the content type. The idea is to make the CLI's copy/paste feel as intuitive as the GUI's.<p>I might tackle Linux (and Windows) at some point, but contributions are definitely welcome!</p>
]]></description><pubDate>Wed, 16 Jul 2025 17:13:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=44584649</link><dc:creator>nberkman</dc:creator><comments>https://news.ycombinator.com/item?id=44584649</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44584649</guid></item></channel></rss>