Show HN: VOOG – Moog-style polyphonic synthesizer in Python with tkinter GUI
Body: I built a polyphonic synthesizer in Python with a tkinter GUI styled after the Moog Subsequent 37.
Features: 3 oscillators, Moog ladder filter (24dB/oct), dual ADSR envelopes, LFO, glide, noise generator, 4 multitimbral channels, 19 presets, rotary
knob GUI, virtual keyboard with mouse + QWERTY input, and MIDI support.
No external GUI frameworks — just tkinter, numpy, and sounddevice.
Show HN: Microgpt is a GPT you can visualize in the browser
very much inspired by karpathy's microgpt of the same name. it's (by default) a 4000 param GPT/LLM/NN that learns to generate names. this is sorta an educational tool in that you can visualize the activations as they pass through the network, and click on things to get an explanation of them.
Show HN: Klaw.sh – Kubernetes for AI agents
Hi everyone,
I run a generative AI infra company, unified API for 600+ models. Our team started deploying AI agents for our marketing and lead gen ops: content, engagement, analytics across multiple X accounts.
OpenClaw worked fine for single agents. But at ~14 agents across 6 accounts, the problem shifted from "how do I build agents" to "how do I manage them."
Deployment, monitoring, team isolation, figuring out which agent broke what at 3am. Classic orchestration problem.
So I built klaw, modeled on Kubernetes: Clusters — isolated environments per org/project Namespaces — team-level isolation (marketing, sales, support) Channels — connect agents to Slack, X, Discord Skills — reusable agent capabilities via a marketplace
CLI works like kubectl: klaw create cluster mycompany klaw create namespace marketing klaw deploy agent.yaml
I also rewrote from Node.js to Go — agents went from 800MB+ to under 10MB each.
Quick usage example: I run a "content cluster" where each X account is its own namespace. Agent misbehaving on one account can't affect others. Adding a new account is klaw create namespace [account] + deploy the same config. 30 seconds.
The key differentiator vs frameworks like CrewAI or LangGraph: those define how agents collaborate on tasks. klaw operates one layer above — managing fleets of agents across teams with isolation and operational tooling. You could run CrewAI agents inside klaw namespaces.
Happy to answer questions.
Show HN: Pangolin: Open-source identity-based VPN (Twingate/Zscaler alternative)
Pangolin (https://github.com/fosrl/pangolin) is an open-source tool for identity-based remote access to internal resources - an alternative to Cloudflare ZTNA, Zscaler, and Twingate.
It’s different than existing approaches: mesh VPNs (Tailscale, ZeroTier, etc.) create flat overlay networks where ACL and IP space management becomes complex at scale and every device can talk to every other device, while corporate ZTNA solutions (Zscaler, Cato, Netskope etc.) are closed-source and add latency by forcing traffic through a central server.
Pangolin takes a resource-centric approach. You deploy lightweight connectors that bridge to specific resources (private web apps, SSH, databases, CIDR ranges). Admins delegate resource-access to specific users and roles. It uses WireGuard with NAT hole-punching for peer-to-peer connections and traffic goes directly between the user and connector instead of through a central server. It supports native clients (Mac/Windows/Linux/iOS/Android) plus identity-aware, browser-based access when a client isn’t required.
Pangolin has a cloud and is optionally self-hosted. The Community Edition is AGPLv3. The Enterprise Edition is also open-source under the commercial license which enables free personal/small business use.
Everything, from the server to the clients, is fully open-source and you can even self-host the whole stack. We’d love to hear what you think and I'm happy to answer any questions!
Show HN: Knock-Knock.net – Visualizing the bots knocking on my server's door
Show HN: Deadlog – almost drop-in mutex for debugging Go deadlocks
I've done this same println debugging thing so many times, along with some sed/awk stuff to figure out which call was causing the issue. Now it's a small Go package.
With some `runtime.Callers` I can usually find the spot by just swapping the existing Mutex or RWMutex for this one.
Sometimes I switch the
mu.Lock()
defer mu.Unlock()
with the LockFunc/RLockFunc to get more detail defer mu.LockFunc()()
I almost always initialize it with `deadlog.New(deadlog.WithTrace(1))` and that's plenty.Not the most polished library, but it's not supposed to land in any commit, just a temporary debugging aid. I find it useful.
Show HN: DSCI – Dead Simple CI
DSCI is a ci pipeline framework integrated with some existed cicd systems like gitea/firgejo/gitlab via web hooks and allowing authors to use general programming languages to write cicd code. It provides SDK for many programming languages. SDK helps process input parameters, write plugins, pass results between tasks and jobs, handle secrets, enable self tests, etc
Target auditory - self hosted cicd systems with devops using general programming languages instead of yaml
Link to the article - https://github.com/melezhik/DSCI/blob/main/introduction.md
Disclosure - Feel free to ask me any questions or provide constructive feedback - I am the tool author
Thanks
Show HN: Lightwave – Real-time notes app, 3.5 years of hand-rolled JavaScript
Hi HN!
I've been building this solo for about three and a half years. I kept trying every new project/notes tool (Notion, Asana, Trello, etc.) and always ended up back in a plain text file. I wanted something that felt like a text editor on first touch but could grow into real structure when you needed it.
https://lightwave.so (desktop only)
The tech stack is Laravel, MySQL, Redis, and hand-rolled JavaScript on the client. No frameworks like React/Vue/etc. ~270 lines of jQuery (out of 80k+ total LOC) for a few legacy DOM utilities, plus IndexedDB for local persistence. Real-time collaboration uses a hybrid approach: HTTP/2 POST for resilient ops + WebSockets via Laravel Reverb for live cursors, presence, and edits.
This is a pre-release stress test, not a launch. Lightwave will be a paid product. Right now I'm opening it up because no amount of solo testing replicates getting punched in the mouth by real traffic.
The link above has a button to create a test account in 1 click.
Known rough edges: the cursor and selection system are built from scratch (like VS Code, not a contenteditable wrapper), so there's a lot of surface area. Some keyboard shortcuts may be missing. Desktop only, accessibility not yet implemented. I'm shipping fixes in real time.
There's a "Submit Bug or Feedback" button inside the app if something breaks. Happy to answer any questions about the architecture, or anything else.
Some highlights:
- Paste markdown in, get native blocks. Copy blocks out, get markdown back.
- Hierarchical document, structure. Hierarchichal file manager.
- Live collab with shared cursors, selection, and presence.
- Code blocks with syntax highlighting. LaTeX math blocks.
- Full data export: markdown, JSON, and attachments. No lock-in.
- Full undo/redo with cursor restoration.
Show HN: Fieldnotes
Hi HN!
I wanted a simple UI for notes and observations around my neighborhood (e.g. this garden has beautiful poppies, this coffee shop has excellent espresso, etc.) and built this. It’s open and free to use, I hope you enjoy it as much as I do!
Feedback welcome.
Show HN: Stockdata.dev – Free stock market API with 15-min delayed US quotes
The article provides an overview of the StockData.dev API, which offers real-time and historical stock data, market indices, economic indicators, and other financial data for users to access and analyze stock market information.
Show HN: Copy-and-patch compiler for hard real-time Python
I built Copapy as an experiment: Can Python be used for hard real-time systems?
Instead of an interpreter or JIT, Copapy builds a computation graph by tracing Python code and uses a custom copy-and-patch compiler. The result is very fast native code with no GC, no syscalls, and no memory allocations at runtime.
The copy-and-patch compiler currently supports x86_64 as well as 32- and 64-bit ARM. It comes as small Python package with no other dependencies - no cross-compiler, nothing except Python.
The current focus is on robotics and control systems in general. This project is early but already usable and easy to try out.
Would love your feedback!
Show HN: Please hack my C webserver (it's a collaborative whiteboard)
Source code: https://github.com/cedric-h/cketchbook
Show HN: Arcmark – macOS bookmark manager that attaches to browser as sidebar
Hey HN! I was a long-time Arc browser user and loved how its sidebar organized tabs and bookmarks into workspaces. I wanted to switch to other browsers without losing that workflow. So I built Arcmark, it's a macOS bookmark manager (Swift/AppKit) that floats as a sidebar attached to any browser window. It uses macOS accessibility API to follow the browser window around.
You get workspace-based links/bookmarks organization with nested folders, drag-and-drop reordering, and custom workspace colors. For the most part I tried replicating Arc's sidebar UX as close as possible.
1. Local-first: all data lives in a single JSON file ( ~/Library/Application Support/Arcmark/data.json). No accounts, no cloud sync.
2. Works with any browser: Chrome, Safari, Brave, Arc, etc. Or use it standalone as a bookmark manager with a regular window.
3. Import pinned tab and spaces from Arc: it parses Arc's StorableSidebar.json to recreate the exact workspace/folder structure.
4. Built with swift-bundler rather than Xcode.
There's a demo video in the README showing the sidebar attachment in action. The DMG is available on the releases page (macOS 13+), or you can build from source.
This is v0.1.0 so it's a very early version. Would appreciate any feedback or thoughts
GitHub: https://github.com/Geek-1001/arcmark
Show HN: An open-source extension to chat with your bookmarks using local LLMs
I read a lot online and constantly bookmark articles, docs, and resources… then forget why I saved them. Also was very bored on Valentines, so I built a browser extension that lets you chat with your bookmarks directly, using local-first AI (WebLLM running entirely in the browser). The extension downloads and indexes your bookmarked pages, stores them locally, and lets you ask questions. No server, no cloud processing, everything stays on your machine. Very early but it works and planning to add a bunch of stuff. Did I mentioned is open-source, MIT licensed?
Show HN: Ingglish – What if English spelling made sense?
My 5-year-old is learning to read and I keep having to say "yeah sorry, that letter is silent" and "no, those letters make a different sound in this word."
So I built Ingglish — English where every letter always makes the same sound. "ough" alone makes 6 different sounds (though, through, rough, cough, thought, bough). In Ingglish, every letter has one sound, no silent letters, no exceptions.
- Paste text to see it translated instantly
- Translate any webpage while preserving its layout
- Chrome extension to browse the web in Ingglish
- Fully reversible — Ingglish text can be converted back to standard English (minus homophones)
The core translator, DOM integration, and website are all open source: https://github.com/ptarjan/ingglishI'd love your feedback! Thanks.
Show HN: Sameshi – a ~1200 Elo chess engine that fits within 2KB
I made a chess engine today, and made it fit within 2KB. I used a variant of MinMax called Negamax, with alpha beta pruning. For the board representation I have used a 120-cell "mailbox". I managed to squeeze in checkmate/stalemate in there, after trimming out some edge cases.
I am a great fan of demoscene (computer art subculture) since middle school, and hence it was a ritual i had to perform.
For estimating the Elo, I measured 240 automated games against Stockfish Elo levels (1320 to 1600) under fixed depth-5 and some constrained rules, using equal color distribution.
Then converted pooled win/draw/loss scores to Elo through some standard logistic formula with binomial 95% confidence interval.
Show HN: SQL-tap – Real-time SQL traffic viewer for PostgreSQL and MySQL
sql-tap is a transparent proxy that captures SQL queries by parsing the PostgreSQL/MySQL wire protocol and displays them in a terminal UI. You can run EXPLAIN on any captured query. No application code changes needed — just change the port.
Show HN: MOL – A programming language where pipelines trace themselves
Hi HN,
I built MOL, a domain-specific language for AI pipelines. The main idea: the pipe operator |> automatically generates execution traces — showing timing, types, and data at each step. No logging, no print debugging.
Example:
let index be doc |> chunk(512) |> embed("model-v1") |> store("kb")
This auto-prints a trace table with each step's execution time and output type. Elixir and F# have |> but neither auto-traces.Other features: - 12 built-in domain types (Document, Chunk, Embedding, VectorStore, Thought, Memory, Node) - Guard assertions: `guard answer.confidence > 0.5 : "Too low"` - 90+ stdlib functions - Transpiles to Python and JavaScript - LALR parser using Lark
The interpreter is written in Python (~3,500 lines). 68 tests passing. On PyPI: `pip install mol-lang`.
Online playground (no install needed): http://135.235.138.217:8000
We're building this as part of IntraMind, a cognitive computing platform at CruxLabx. """
Show HN: Rover – Embeddable web agent
Rover is the world's first Embeddable Web Agent, a chat widget that lives on your website and takes real actions for your users. Clicks buttons. Fills forms. Runs checkout. Guides onboarding. All inside your UI.
One script tag. No APIs to expose. No code to maintain.
We built Rover because we think websites need their own conversational agentic interfaces as users don't want to figure out how your site works. If they don't have one then they are going to be disintermediated by Chrome's or Comet's agent.
We are the only Web Agent with a DOM-only architecture, thus we can setup an embeddable script as a harness to take actions on your site. Our DOM-native approach hits 81.39% on WebBench.
Beta with embed script is live at rtrvr.ai/rover.
Built by two ex-Google engineers. Happy to answer architecture questions.
Show HN: Lineark – Linear CLI and Rust SDK for Humans and LLMs
lineark is an unofficial CLI and Rust SDK for Linear (the issue tracker). I built it because I use Claude Code heavily, and the Linear MCP server eats ~13K tokens of context just to describe its tools — before my agent does any actual work.
lineark takes a different approach: it's a CLI your agent calls via Bash. The full command reference (lineark usage) is under 1,000 tokens.
It's also just a nice CLI for humans — human-readable names instead of UUIDs, auto-detected output format (outputs tables in terminal/interactive session, JSON when piped).
Under the hood: the SDK is fully generated from Linear's GraphQL schema via a custom codegen pipeline (apollo-parser → typed Rust). The CLI consumes the SDK with zero raw GraphQL — just typed method calls. You can also create your own lean return data types and validate them against Linear's schema at comptime.
MIT Licensed.
Happy to answer questions. Thanks!
Show HN: A reputation index from mitchellh's Vouch trust files
I was inspired by mitchellh's Vouch project, an explicit trust system where maintainers vouch for contributors before they can interact with a repo. Ghostty uses it to filter out AI slop PRs.
Because Vouch exposes the vouch list as a plain text file (VOUCHED.td), I realized I could aggregate them across GitHub and build a reputation index. A crawler finds every VOUCHED.td file, pulls the entries, and computes a weighted score per user. Vouches from high-star repos count more than vouches from zero-star repos.
Next step is to wire up an API so that the vouch GH action can start to use this data to auto approve contributors.
Show HN: Data Engineering Book – An open source, community-driven guide
Hi HN! I'm currently a Master's student at USTC (University of Science and Technology of China). I've been diving deep into Data Engineering, especially in the context of Large Language Models (LLMs).
The Problem: I found that learning resources for modern data engineering are often fragmented and scattered across hundreds of medium articles or disjointed tutorials. It's hard to piece everything together into a coherent system.
The Solution: I decided to open-source my learning notes and build them into a structured book. My goal is to help developers fast-track their learning curve.
Key Features:
LLM-Centric: Focuses on data pipelines specifically designed for LLM training and RAG systems.
Scenario-Based: Instead of just listing tools, I compare different methods/architectures based on specific business scenarios (e.g., "When to use Vector DB vs. Keyword Search").
Hands-on Projects: Includes full code for real-world implementations, not just "Hello World" examples.
This is a work in progress, and I'm treating it as "Book-as-Code". I would love to hear your feedback on the roadmap or any "anti-patterns" I might have included!
Check it out:
Online: https://datascale-ai.github.io/data_engineering_book/
GitHub: https://github.com/datascale-ai/data_engineering_book
Show HN: WCAG 2.2 AAA Toolkit – AI Skill for Accessible Web Apps
Show HN: GitHub "Lines Viewed" extension to keep you sane reviewing long AI PRs
I was frustrated with how bad a signal of progress through a big PR "Files viewed" was, so I made a "Lines viewed" indicator to complement it.
Designed to look like a stock Github UI element - even respects light/dark theme. Runs fully locally, no API calls.
Splits insertions and deletions by default, but you can also merge them into a single "lines" figure in the settings.
Show HN: Off Grid – Run AI text, image gen, vision offline on your phone
Your phone has a GPU more powerful than most 2018 laptops. Right now it sits idle while you pay monthly subscriptions to run AI on someone else's server, sending your conversations, your photos, your voice to companies whose privacy policy you've never read. Off Grid is an open-source app that puts that hardware to work. Text generation, image generation, vision AI, voice transcription — all running on your phone, all offline, nothing ever uploaded.
That means you can use AI on a flight with no wifi. In a country with internet censorship. In a hospital where cloud services are a compliance nightmare. Or just because you'd rather not have your journal entries sitting in someone's training data.
The tech: llama.cpp for text (15-30 tok/s, any GGUF model), Stable Diffusion for images (5-10s on Snapdragon NPU), Whisper for voice, SmolVLM/Qwen3-VL for vision. Hardware-accelerated on both Android (QNN, OpenCL) and iOS (Core ML, ANE, Metal).
MIT licensed. Android APK on GitHub Releases. Build from source for iOS.
Show HN: Geo Racers – Race from London to Tokyo on a single bus pass
Geo Racers is a mobile game that combines geography and racing, allowing players to explore real-world locations and compete in fast-paced races. The game aims to make learning about different countries and landmarks engaging and fun.
Show HN: 500x faster string matching for Linux Netfilter (O(1) vs. O(N))
I built a drop-in replacement for the kernel’s xt_string module.
xt_string scales linearly (O(N)), causing massive slowdowns with many rules. Strider uses Aho–Corasick for O(1) matching.
Key Features:
O(1) Algorithmic Complexity: Uses a compact, double-array trie-based Aho–Corasick automaton, sustaining above 1 Gbps when matching 3,000 patterns, while xt_string (KMP) drops below 2 Mbps.
Lockless Datapath: RCU-protected lookups ensure zero locking overhead on the packet processing hot path.
Correctness: Never misses patterns spanning across IP fragments (unlike xt_string’s fast Boyer–Moore mode).
Show HN: Bubble sort on a Turing machine
Bubble sort is pretty simple in most programming languages ... what about on a Turing Machine? I used all three of Claude 4.6, GLM 5, and GPT 5.2 to get a result, so this exercise was not quite trivial, at least at this time. The resulting machine, bubble_sort_unary.yaml, will take this input:
111011011111110101111101111
and give this output:
101101110111101111101111111
I.e., it's sorting the array [3,2,7,1,5,4]. The machine has 31 states and requires 1424 steps before it comes to a halt. It also introduces two extra symbols onto the tape, 'A' and 'B'. (You could argue that 0 is also an extra symbol because turinmachine.io uses blank, ' ', as well).
When I started writing the code the LLM (Claude) balked at using unary numbers and so we implemented bubble_sort.yaml which uses the tape symbols '1', '2', '3', '4', '5', '6', '7'. This machine has fewer states, 25, and requires only 63 steps to perform the sort. So it's easier to watch it work, though it's not as generalized as the other TM.
Some comments about how the 31 states of bubbles_sort_unary.yaml operate:
| Group | Count | Purpose |
|---|---|---|
| `seek_delim_{clean,dirty}` | 2 | Pass entry: scan right to the next `0` delimiter between adjacent numbers. |
| `cmpR_*`, `cmpL_*`, `cmpL_ret_*`, `cmpL_fwd_*` | 8 | Comparison: alternately mark units in the right (`B`) and left (`A`) numbers to compare their sizes. |
| `chk_excess_*`, `scan_excess_*`, `mark_all_X_*` | 6 | Excess check: right number exhausted — see if unmarked `1`s remain on the left (meaning L > R, swap needed). |
| `swap_*` | 7 | Swap: bubble each `X`-marked excess unit rightward across the `0` delimiter. |
| `restore_\*` | 6 | Restore: convert `A`, `B`, `X` marks back to `1`s, then advance to the next pair. |
| `rewind` / `done` | 2 | Rewind to start after a dirty pass, or halt. |
(The above is in the README.md if it doesn't render on HN.)I'm curious if anyone can suggest refinements or further ideas. And please send pull requests if you're so inclined. My development path: I started by writing a pretty simple INITIAL_IDEAS.md, which got updated somewhat, then the LLM created a SPECIFICATION.md. For the bubble_sort_unary.yaml TM I had to get the LLMs to build a SPEC_UNARY.md because too much context was confusing them. I made 21 commits throughout the project and worked for about 6 hours (I was able to multi-task, so it wasn't 6 hours of hard effort). I spent about $14 on tokens via Zed and asked some questions via t3.chat ($8/month plan).
A final question: What open source license is good for these types of mini-projects? I took the path of least resistance and used MIT, but I observe that turingmachine.io uses BSD 3-Clause. I've heard of "MIT with Commons Clause;" what's the landscape surrounding these kind of license questions nowadays?
Show HN: Eliza, a line-by-line remake of the original AI chatbot from 1966
Source at https://github.com/MarquisdeGeek/Eliza-Origins along links to with a talk I gave explaining a bit about it.
Show HN: Open Notes – Community Notes-style context for Discord
Howdy, Open Notes co-founder here!
At Open Notes, we're building a system for community-driven constructive moderation and annotation that can be added to anything. Under the hood, we're using the open-source Twitter/X Community Notes algorithm (though that doesn't really kick in until you've got some scale). We're interested in providing everyone with tools for managing discourse that go beyond traditional moderation. Discord is the demo/reference integration, but we want it go anywhere and everywhere. Part of our thesis is that we want to get to where people are already talking rather than drag them to a clean and empty new room where we ask them to continue the conversation.
It's interesting that Pol.is was just recently on HN (https://news.ycombinator.com/item?id=46992815) because we're obviously inspired by them as well as the whole canon of social choice theory--we're just going at it from a different angle. It's long been true that if you wanted to trap me/yourself in a conversation, you could just bring up the Condorcet criterion (amongst others), so I'm finally turning an obsession into an actual product.
We want to enable people to make decisions about conversations as close to the conversation as possible while minimizing impact on live threads. Later, this nicely extends into all sorts of group decisionmaking. As our conversations are increasingly awash in AI of all sorts (as moderators, participants, analysts, etc.), things that help manage the discourse to fit the needs of individual communities need to be scalable but without drowning human choice in an ocean of automation.
Also, we're open-source: https://github.com/opennotes-ai/opennotes
Would love to hear people's thoughts and reactions. This has so much surface area ("all online discourse"), it's hard to formulate specific questions so instead we built a thing and now we'd love to see if it works for folks.