Alternatives
Products that do what Tsellm: Interactive SQLite shell with LLM support does
Hello HN, While browsing the Python docs yesterday, I discovered that the latest 3.12 version has added support for a `python3 -m sqlite3` interactive shell. I looked into the source code, and its implementation was simple, giving me an idea: Why not hook the beautiful llm library by simonw into such an interactive shell, and thus have direct LLM support in SQLite? Without writing a C extension, build a shared object and all that fuss. Well, now you can `pip install tsellm` and do just that. demo gif:…
- 1SQ
Part of the workflow for building my website is the generation of a table in tab-separated column format (.tsv). The source data is found in four other .tsv files. I use an SQLite query to perform a 4-way join and write out the new table. For convenience, I wrote a script that encapsulates the query inside a Bash function. The example below illustrates this technique. repertoire() { pushd $CMM_SOURCES/_data sqlite3 <<EOS .headers on .mode tabs .import category.tsv category .import composition.tsv composition .import concert.tsv concert .import program.tsv program .once repertoire.tsv…
2021
- 2LS
Hi HN, I built llm.sql, an LLM inference framework that reimagines the LLM execution pipeline as a series of structured SQL queries atop SQLite. The motivation: Edge LLMs are getting better, but hardware remains a bottleneck, especially RAM (size and bandwidth). When available memory is less than the model size and KV cache, the OS incurs page faults and swaps pages using LRU-like strategies, resulting in throughput degradation that's hard to notice and even harder to debug. In fact, the memory access pattern during LLM inference is deterministic - we know exactly which weights are needed…
Apr 2026
- 3PP
Hello HN! We’ve been working hard on Vanna, our RAG framework for SQL generation and we’ve been updating our documentation. Please have a look — we have a ton of Jupyter notebooks for any combination of desired use cases. At it’s heart, we have abstractions that help you: - “train” a RAG “model” i.e. add metadata for the retrieval augmentation system to reference when constructing the LLM prompt (yes, we know that the terms “train” and “model” are somewhat confusing and we’re open to changing those terms if you can suggest better ones) - “ask” questions, which will generate SQL, run it,…
2023 · github.com
- 4AW
I've spent the past couple of weeks building a Wasm-to-Go translator. It supports a subset of Wasm useful enough to translate SQLite into 600k LoC (~20 MiB) of Go code. It already passes all of my Go SQLite driver's tests across the 20 platforms I support. Performance compared to https://wazero.io/ is a bit of a mixed bag: code that frequently crosses the Go-Wasm boundary improves, but code that spends most of its time in "Wasm land" doesn't. There's probably room for improvement (I'd love to hear your ideas), but this is also a testament to how good the wazero AOT compiler…
Feb 2026 · github.com
- 5IL
2025 · github.com
- 6GR
Hey folks, As much as we love GPT-4, it's expensive and can be slow at times. That's why we built GPTCache - a semantic cache for autoregressive LMs - atop the vector database Milvus and SQLite. GPTCache provides several benefits: 1) reduced expenses due to minimizing the number of requests and tokens sent to the LLM service 2) enhanced performance by fetching cached query results directly 3) improved scalability and availability by avoiding rate limits, and 4) a flexible development environment that allows developers to verify their application's features without connecting to LLM APIs or…
2023 · github.com
- 7NT
With the latest launch from Google I've added support for Gemma 3 270M, the speed for local LLM to TTS token time is incredible! This is an heavy obvious work in progress - any contributions or tips would be welcome. The idea is to have a fast moving edge model playground, and maybe have some utility (like the e reader) on the side.
2025 · github.com
- 8LF
Hey HN, I built SWE-Kit, LLM toolkit (Function callable tools) which makes building agents specialised in coding like Devin very easy. I noticed a typical pattern while building local agents: creating & perfecting LLM tools to interact with system or codebase was the repeated and time-consuming. We created a layer that simplifies building agents that can interact with code, file system, git, shell and allows you to quickly solve for a wide variety of coding agent use cases. Aren’t there open coding agents already? Well, yes, but most folks would want to solve their specific use case like a…
2024 · swekit.dev
- 9NL
Built this because I was tired of every AI tool shipping my data to someone else server n0x runs the full stack LLM inference via WebGPU, autonomous ReAct agents, RAG over your own docs, sandboxed Python execution via Pyodide all inside a single browser tab. No account No keys No backend Models download once, cache in IndexedDB permanently. Biggest challenge was context window budgeting for the agent loop and making the WASM vector search non-blocking. Happy to talk architecture. GitHub: https://github.com/ixchio/n0x | Live demo: https://n0x-three.vercel.app
Mar 2026 · n0xth.vercel.app
- 10SP
2016 · github.com
- 11MC
Hi HN, I'm excited to introduce Mixlayer, a platform I've been working on over the past 6 months that allows you to code and deploy prompts using simple JavaScript functions. Mixlayer recreates the developer experience of using LLMs locally without having to do all of the local setup yourself. I originally came up with this idea when using LLMs on my MacBook and thought it’d be cool to build a product that makes it easy for everyone. It compiles your code to a WASM binary and runs it alongside a custom inference stack I wrote in Rust. When you integrate LLMs in this way, your code and the…
2024 · mixlayer.com
- 12MP
2015 · github.com
- 13UL
2021 · gist.github.com
- 14LP
I was not getting good cache utilization when including dynamic context in agent threads. After a lot of experimentation, I found a good pattern that minimizes how often long lived conversation history gets modified while still supporting dynamic context. It has flexible hooks for doing things like truncating or summarizing tool outputs when transitioning messages to the long term history. And I'm seeing >>90% of tokens hitting the cache for my agents despite including a lot of dynamic user context. There are a wide range of agent prompting strategies so I'd love to hear where this library…
Jun 2026 · github.com
- 15RL
I got tired of repeating myself to my LLM every session. rekal is an MCP server that stores memories in SQLite and retrieves them with hybrid search (BM25 + vectors + recency decay). One file, local embeddings, no API keys.
Apr 2026 · github.com
- 16EC
Hi! I've found myself repeatedly writing little scripts to do bulk calls to LLMs for various tasks. For example, run some analysis on a large list of records. There are a few "gotchas" to doing this. For example, some service providers have rate limits, and some models will not reliably return JSON (if you're asking for it). So, I've written a command for this. What I've tried to do here is let the user break up prompts and configuration as they see fit. For example, you can have a prompt file which includes the API key, rate limit, settings, etc. all together, or break these up into…
2025 · github.com
- 17LA
You build LLM applications with YAML files, that define an execution graph. Nodes can be either LLM API calls, regular function executions or other graphs themselves. Because you can nest graphs easily, building complex applications is not an issue, but at the same time you don't lose control. The YAML basically states what are the tasks that need to be done and how they connect. Other than that, you only write individual python functions to be called during the execution. No new classes and abstractions to learn.
2024 · github.com
- 18IB
hey hn, I built an open-source Perplexity clone that can run local LLMs and cloud LLMs. It's fully self-hostable through Docker and uses ollama to support local LLMs. The demo video in the repository shows me running it locally with llama3 on my M1 Macbook Pro. I'm open to any suggestions or feedback, thanks!
2024 · github.com
- 19LL
https://github.com/wandwan/LPY (April Fools)
2024 · github.com
- 20BL
Hey, everyone! SkyAlt is a browser and SDK for Local-first applications at the top of SQLite files. One and half months ago, I started working on the idea of rebuilding some software as services I use into local-first apps. SkyAlt is a combination of SQLite(storage), WASM(app binary) and JSON(settings, communication). I decided to build my own 'browser', which has around ~10K LOC and has nothing to do with WebKit(HTML/CSS/JS) or Chromium. Apps use immediate mode GUI to draw and communicate with Skyalt. The layout is a flexible grid. Apps are written in the Go language. Right now…
2023
- 21KC
I think in-process key management is the right abstraction for multi-key LLM setups. Not LiteLLM, not a Redis queue, not a custom load balancer. The failure modes are well-understood: a key gets rate-limited, you wait, you try the next one. Billing errors need a longer cooldown than rate limits. This is not a distributed systems problem — it's a state machine that fits in a library. The problem is everyone keeps solving it with infrastructure instead. Spin up LiteLLM, now you have a Python service to maintain. Reach for Redis, now you have a database for a problem that doesn't need one.…
Mar 2026 · github.com
- 22DQ
What started as a Claude Code experiment turned into a browser-native SQL workbench I now use daily. Runs DuckDB WASM entirely in your browser. No backend, no installation, no signup. - Query local files (CSV, Parquet, Excel) – data never leaves your machine - Handles 100M+ rows, 50GB+ files in a browser tab - Full UI: Monaco editor, schema explorer, spreadsheet-style results grid - Share SQL via URL – anyone can run your query instantly - BigQuery connector built-in (Snowflake coming) v0.2 – actively developing. Feedback welcome. GitHub (MIT):…
Dec 2025 · sql.dbxlite.com
- 23

Ranked by how close each launch is in meaning, then by votes. Refine with a description →