Promptel
Prompt DSLDeclarative prompt engineering: a small DSL (and equivalent YAML) for LLM prompts, with typed params, technique blocks, and a provider abstraction over OpenAI, Anthropic, and Groq.
Independent AI research lab · United Kingdom · Open source
Skelf Research turns sharp research questions into runnable software. We ship a family of focused tools — prompt DSLs, agent protocols, vector search, sandboxed runtimes, constraint solvers, and privacy protocols — each one small, honest about its scope, and yours under an open licence.
What is Skelf Research?
Skelf Research is an independent AI research laboratory based in the United Kingdom. We investigate the foundations of machine reasoning, retrieval, systems performance, and privacy — and we publish every result as open-source software. Our method is hypotheses as software: each open question becomes a runnable, testable repository rather than a paper that sits on a shelf.
The output is a portfolio of twenty focused products, each living at its own subdomain. Rather than one sprawling framework, we build small tools that do one thing well: a declarative prompt DSL, an agent-communication protocol, local embeddings and vector search, a container sandbox, a NUMA runtime, a natural-language constraint solver, and metadata-private messaging, among others. Everything is MIT, Apache-2.0, or GPL-3.0 licensed — nothing hidden behind a paywall.
The Portfolio
Each product lives at its own subdomain, ships its own docs, and encodes one sharp idea. Filter by what you are building.
Declarative prompt engineering: a small DSL (and equivalent YAML) for LLM prompts, with typed params, technique blocks, and a provider abstraction over OpenAI, Anthropic, and Groq.
A Python CLI and library that extracts prompts from your codebase, versions them in .prompt files, and pins each with a sha256 hash in a prompts.lock file — "package.lock for AI prompts".
The Meaning Protocol Layer: contracts, quality measurement (QoM), and BLAKE3-hashed audit trails for AI agent communication over MCP, A2A, and HTTP.
An OpenAI-compatible LLM gateway that routes across OpenAI, Anthropic, Google, Ollama, Cohere, and Mistral, tracks per-prompt analytics in DuckDB, and reruns MIPROv2 optimisation against captured traces.
A lightweight framework for building AI-powered browser extensions — plugs into any OpenAI-compatible provider and ships a CLI scaffold, response cache, per-provider rate-limit queue, and settings panel.
Ship AI features without shipping your API keys: a self-hosted Node proxy plus browser SDK that lets client-side apps call OpenAI-compatible APIs behind fingerprinting, short-lived JWT sessions, and per-fingerprint rate limits.
A Python library and CLI that turns a text file into a podcast-style video via a six-stage resumable pipeline: script (GPT-4), narration (BARK), transcription (Distil-Whisper), image prompts, stills (FLUX), and FFmpeg composition.
A Rust library and REST API that generates text embeddings locally with FastEmbed (22+ models: BGE, MiniLM, Nomic, E5) and caches them in SQLite — no external embedding API calls, no per-token billing, no rate limits.
A lightweight vector search library for Rust that pairs SQLite metadata storage with USearch (HNSW) similarity search, exposing a small Actix-web HTTP API. Experimental (v0.1.x).
A Rust web service that turns search into an answer engine: it sits in front of SearxNG, fetches top result URLs, chunks and embeds them, and returns a JSON map of chunk_id → (source_url, text). Infrastructure, not a turnkey RAG product.
An open-source AI search engine that drafts an answer and a knowledge graph before it queries the web — a fixed six-step pipeline, no agent loop, with every intermediate artefact exposed.
An OCI-compatible Zig container runtime that takes a selective-denial approach to isolation: namespaces, all 41 capabilities dropped, Landlock, seccomp-BPF, cgroups v2 — a single static binary, no daemon.
A NUMA-first runtime for latency-critical Rust applications: explicit control over memory placement, thread pinning, and per-node work scheduling, with topology discovery and locality observability.
A GPU-less correctness oracle for deep-learning kernels: catches silently-wrong CUDA/Triton kernels with an fp64 reference, op-schema-aware adversarial fuzzing, per-op calibrated tolerances, and static PTX/SASS lint.
Natural-language to constraint solver: describe optimisation problems in English, an LLM translates to Answer Set Programming, and Clingo searches exhaustively for a valid solution — with a typed self-repair loop.
A Python package and FastAPI service for pairwise comparison ranking: a UCB1 multi-armed bandit picks pairs adaptively and Elo produces the ranking output.
The Quant’s Compiler: a type-safe DSL and Rust-native runtime for quantitative trading strategies — compile alpha ideas to deterministic backtests and ship the same binary to production.
An open, deterministic discrete-event simulator and RL benchmark for task allocation in Robotic Mobile Fulfillment Systems — Kiva-style fleets of AMRs moving pods to pick stations.
A developer toolkit that adds AI-powered validation, PII detection, and continuous pattern learning to SQL workflows — an AI co-pilot for analytics engineers that keeps warehouse data local.
A Python privacy-protocol library for authenticated, metadata-private one-to-one messaging: Schnorr zero-knowledge proofs, per-recipient blinded pseudonyms, AES-GCM delivery, and (ε,δ)-differentially-private cover traffic.
No products in this category.
What we build
The portfolio clusters into five areas. Jump straight to the tools in each — or use them together.
Prompts, agent protocols, routing, and client-side LLM plumbing.
Promptel · Blogus · MPL · Route-Switch · Anouk · Direktor
6 products →Embeddings, vector search, answer engines, and deliberative search.
EmbedCache · Memista · Polymathy · Slorg
4 products →Sandboxing, NUMA-aware runtimes, and correctness oracles.
ZViz · NumaPerf · GPUEmu
3 products →Constraint solving, ranking, trading signals, and simulation.
Savanty · Compere · Sigc · WareMax
4 products →Metadata-private messaging, key hygiene, and SQL data protection.
Perishable · l0l1 · Tessera
3 products →Find a tool
A decision table across the whole portfolio. Match your problem to the product built for it.
| If you need to… | Reach for | Domain | Stack |
|---|---|---|---|
| You want prompts as typed, provider-portable, versionable artefacts. | Promptel | LLM & Agents | JavaScript |
| You need CI to guarantee the prompt that ships is the one that was reviewed. | Blogus | LLM & Agents | Python |
| Your agents call tools and each other and you need contracts, scoring, and provenance. | MPL | LLM & Agents | Rust |
| You want provider routing plus prompt optimisation grounded in production traces. | Route-Switch | LLM & Agents | Go |
| You are building the AI half of a Manifest V3 Chrome extension. | Anouk | LLM & Agents | JavaScript |
| You want a text file rendered into a 1080p narrated video, stage by stage. | Direktor | LLM & Agents | Python |
| You want to replace a hosted embedder with a cached local one. | EmbedCache | Search & Retrieval | Rust |
| You need an embeddable SQLite + HNSW vector index in pure Rust. | Memista | Search & Retrieval | Rust |
| You are building an answer engine and want retrieval + chunking as a service. | Polymathy | Search & Retrieval | Rust |
| You want plan-conditioned retrieval with full visibility into the search plan. | Slorg | Search & Retrieval | JavaScript |
| You must run untrusted code with host-kernel speed and layered isolation. | ZViz | Systems & Runtime | Zig |
| You are hunting p99 tail latency on multi-socket NUMA hardware. | NumaPerf | Systems & Runtime | Rust |
| A single torch.allclose is not enough to trust your custom kernels. | GPUEmu | Systems & Runtime | Rust |
| You have a discrete constraint problem (scheduling, assignment) to state in plain English. | Savanty | Optimisation & Decision | Python |
| You need to rank items from human pairwise comparisons, efficiently. | Compere | Optimisation & Decision | Python |
| You want type-checked, content-hashed strategies that run identically in backtest and prod. | Sigc | Optimisation & Decision | Rust |
| You need a deterministic RMFS dispatching benchmark for RL or policy work. | WareMax | Optimisation & Decision | Rust |
| You call an LLM API from the browser and must not expose the upstream key. | Perishable | Privacy & Trust | TypeScript |
| You want LLM help on SQL without leaking schema or warehouse data. | l0l1 | Privacy & Trust | Python |
| You need messaging that both authenticates senders and hides metadata. | Tessera | Privacy & Trust | Python |
How we work
Every research question becomes a runnable, testable repository — not a paper that stays on a shelf. The code is the proof.
Each product does one thing and is explicit about what it is not. We publish scope boundaries as clearly as features.
Infrastructure is written in Rust, Zig, and Go where correctness and speed matter; Python and JS where reach matters.
Everything ships under MIT, Apache-2.0, or GPL-3.0 on github.com/Skelf-Research — published to crates.io, PyPI, and npm where it fits.
Collaborate
We welcome academic collaborators, research partners, and funders who believe the hardest problems in AI deserve open, rigorous, reproducible investigation.
Skelf Research is an independent AI research laboratory based in the United Kingdom. We investigate machine reasoning, retrieval, systems performance, and privacy, and publish everything as open-source software. Our portfolio is a family of 20 focused products, each at its own subdomain, spanning LLM & agents, search & retrieval, systems & runtime, optimisation & decision, and privacy & trust.
Twenty open-source products: promptel (prompt DSL), blogus (prompt lockfiles), mpl (agent protocol), route-switch (LLM gateway), anouk (browser-extension AI), perishable (API-key protection), direktor (text-to-video), embedcache and memista and polymathy (embeddings, vector search, answer-engine infra), slorg (deliberative search), zviz (container sandbox), numaperf (NUMA runtime), gpuemu (kernel correctness), savanty (NL-to-solver), compere (pairwise ranking), sigc (trading-signal compiler), waremax (warehouse-robotics simulation), l0l1 (SQL co-pilot), and tessera (metadata-private messaging). All are MIT, Apache-2.0, or GPL-3.0 licensed.
Every product lives at its own subdomain in the form <name>.skelfresearch.com — for example promptel.skelfresearch.com or zviz.skelfresearch.com. Documentation is at docs.skelfresearch.com/<name>/ and source is at github.com/Skelf-Research/<name>.
Yes. Every product is open source under MIT, Apache-2.0, or GPL-3.0. Our methodology is "hypotheses as software": every research question is encoded in a runnable, testable, peer-reviewable repository, published on github.com/Skelf-Research.
Skelf Research is based in the United Kingdom (registered in Scotland, company no. SC809174). We work with academic collaborators, research partners, and funders globally.
Start from the problem. If you need typed, portable prompts use promptel; to lock prompts in CI use blogus; for agent-to-agent contracts and audit use mpl; for local embeddings use embedcache; for vector search use memista; for a container sandbox use zviz; for natural-language optimisation use savanty; for private messaging use tessera. The homepage "Find a tool" decision table maps each need to the right product.