← Back to Payloads
Open Source2026-07-03

txtai Is the Only All-in-One AI Framework That Still Cares About CPU Servers, and Most of You Are Sleeping on It

While the rest of the AI world fights over who has the shiniest 8-GPU inference rig, neuml/txtai shipped v9.11 two days ago with a unified embeddings database, a smolagents-backed agent layer, graph + sparse + dense indexing, and bindings in JS/Java/Rust/Go. 12,700 stars. Apache 2.0. Zero VC footprint. This is the framework you should have been benchmarking in 2026.
Quick Access
Install command
$ mrt install txtai
Browse related skills
txtai Is the Only All-in-One AI Framework That Still Cares About CPU Servers, and Most of You Are Sleeping on It

txtai Is the Sleeper All-in-One AI Framework You Should Already Be Using

Hey guys, Mr. Technology here. I'm going to save you three weeks of stack meetings. There's an Apache 2.0 Python framework called txtai that has been quietly shipping an integrated vector store, RAG engine, agent runtime, and LLM orchestration layer since 2020 — and almost nobody on the timeline is talking about it. txtai is the most underrated AI framework of 2026. Here's why.

What it actually is

txtai is from NeuML (David Mezzetti). The single conceptual object is an embeddings database that fuses dense vector indexes, sparse (SPLADE-style) indexes, a graph network layer, and a relational store. One txtai.Embeddings instance does semantic search, BM25-style keyword recall, graph traversal, and SQL-style filtering in one query — no three-service-plus-cron Rube Goldberg machine.

Most "RAG stacks" in 2026 are a Postgres schema joined to a vector index joined to a graph DB joined to an object store. txtai says no — one engine, one config file, one API.

The repo stats that matter

SignalValue
GitHub stars~12,695
Forks840
Open issues8
LicenseApache 2.0
Latest releasev9.11.0 — July 1, 2026 (two days before I wrote this)
Commits in June 202625
Language bindingsPython, JavaScript, Java, Rust, Go

The commit cadence is the real story. Minor releases every three to six weeks — v9.10 on June 4, v9.11 on July 1 — and an issue tracker empty enough that you can actually file a feature request and get a response. Try that on LangChain, I dare you.

The API is so short it offends people

Here's the entire onboarding flow from the README:

python
import txtai
embeddings = txtai.Embeddings()
embeddings.index(["Correct", "Not what we hoped"])
embeddings.search("positive", 1)
# [(0, 0.29862046241760254)]

That's it. No VectorStoreFactoryBeanConfig ceremony, no choosing between six retrieval strategies before you've indexed a single vector. The agent quickstart is similarly small — about 70 lines — and wires a smolagents-backed Agent to a Wikipedia embeddings DB plus websearch and webview tools. Out of the box.

Where txtai actually wins

1. The graph + vectors combo. txtai's semantic graph layer lets you run graph traversal against the same embeddings index. Example notebook 38 builds a topic graph; example 77 builds GraphRAG over Wikipedia and GPT-OSS without ever touching Neo4j. Faster to stand up than the LangChain + NetworkX + Qdrant pipeline everyone's rewriting.

2. CPU-first performance. This is the spicy one. txtai defaults to FAISS in CPU mode and ships a built-in turbovec ANN backend. v9.11 added LiteParse for text extraction. The whole stack runs on commodity x86 — no H100 required, no nvidia-smi panic. For on-prem RAG for compliance, this is huge. I have watched so many "pilot programs" die because the only machine with the right CUDA was booked by the recsys team.

3. Bindings in four languages. Native JS, Java, Rust, and Go clients. Frontend, Android, systems backend, CLI tool — talk to the same server with first-class types. Wildly under-marketed. Most frameworks stop at Python and tell you to write your own gRPC layer for everything else.

4. MCP support out of the box. txtai ships an MCP server adapter, so you can register an embeddings database as a tool in Claude Code, Cursor, or any MCP host. In 2026, "does it speak MCP" is the gate, and txtai cleared it ages ago.

Where I'd push back

The agent layer is the weakest part. txtai's Agent is a thin wrapper around smolagents, which is a thin wrapper around Hugging Face Transformers tool-calling. It works, but it's not the differentiation. If you're choosing txtai purely for the agent runtime, look at LangGraph, Agno, or Pydantic AI. The reason to use txtai is the embeddings database, the graph layer, and workflow orchestration. Treat the agent as a free bonus.

Second, maintainer count is small. In the last 100 commits, only three unique author logins appear. Mezzetti is doing the bulk of the work. Apache 2.0 means any org can fork, but it's a bus-factor risk.

Third — the spicy part — txtai shipped an unauthenticated RCE in /reindex last month. POST /reindex accepted a function body parameter that landed at __import__() with no auth check. Disclosed June 26, fixed June 26, fourteen hours total. Fast patch and the right response, but the server defaults are dangerously permissive. Stand up uvicorn txtai.api:app on a public IP without setting TOKEN and you've given the internet an unauthenticated Python import endpoint. The docs could be louder. Use a token. Always.

My actual take

Stop building "vector + graph + RAG" stacks by hand. The three-service-plus-cron architecture is a tax on your ignorance. txtai gives you all of it in one Python package, with bindings for the languages your team is writing in, on hardware you already own, under a license that won't bite you in three years. It is the boring, correct choice for retrieval in 2026, and the boring choice is the one that ships.

Install it: pip install txtai[agent]. Run the quickstart. Spend the afternoon you just saved on literally anything else.

— Mr. Technology

Related Dispatches