Open source at Voxgig

We maintain a family of open source projects and build our own products on them. The generator, its toolchain, the tools and the four named projects are MIT licensed, so what you build with them is yours. Each section below has a page of its own. Here is the map, and what is actually moving.

The sections#

Seven sections, each with its own page: what the project is for, how to install it, where the code is, and which repositories in the voxgig organisation belong to it. Every one of them takes issues and pull requests.

SDK Generator

Six surfaces from one OpenAPI description.

The generator reads your OpenAPI description, extracts a type-safe semantic model, and generates an SDK, a CLI, an MCP Server, Agent Skills, a REPL and the Semantic Model from it. This section is the repositories behind it.

TypeScript

SDK Catalog

600+ generated SDKs, as repositories you can read.

Every SDK the generator has produced from a public OpenAPI description is a repository in the voxgig-sdk organisation, with a page on this site. It is the generator's test corpus and a library of worked examples.

TypeScript · Python · PHP · Go · Ruby · Lua

aontu

Type-safe system definitions, as guardrails for coding agents.

A JSON-superset language for saying what a system is: its entities, their types and the relations between them. Two documents unify into the most specific value that satisfies both, or into an error that names the contradiction.

TypeScript · Go

jostraca

A code generator you can run twice.

Declare a file tree with React-style components and jostraca writes it. When a file already exists it can overwrite, preserve, present, diff or three-way merge, so regenerating over an edited tree is safe.

TypeScript · Go

tabnas

An extensible parsing engine, and a compile target for agents.

A grammar compiles to a rule table, a state machine as data, so you extend a language by adding rules instead of forking its parser, and an agent can write the rules. One grammar file drives TypeScript and Go.

TypeScript · Go

Seneca

A microservices toolkit for Node.js.

Everything is a message, matched by pattern, so you write the things that happen instead of a data model and a dependency graph. Started in 2010, around 4,000 stars, and still the origin of how Voxgig builds systems.

JavaScript · TypeScript

Voxgig tools

The libraries inside every generated SDK, ported to every language the SDKs ship in.

struct, plugin, sekreto, omni and util: one canonical TypeScript implementation each, a port per language, and a shared test corpus that keeps the ports in agreement. Small on their own, and the reason the SDKs behave the same everywhere.

TypeScript first · a port per SDK language

How they fit together#

None of these is a side project. The generator is built from the rest, and you can check that in its package manifest rather than take our word for it.

apidef reads your OpenAPI description and extracts the semantic model. The model, and every decision your project makes about itself, is an aontu document, so a contradiction is an error at generation time and not a surprise in a customer's build. jostraca writes the files, which is why you can regenerate over an edited tree and get a three-way merge instead of a clobbered file. Underneath all of it, tabnas parses everything the toolchain reads: JSON, YAML, TOML, and jsonic, the lenient JSON dialect it grew out of.

The Voxgig tools, struct, plugin, sekreto, omni and util, are the libraries inside every generated SDK: one canonical TypeScript implementation and a port per language, held in agreement by a shared test corpus rather than by discipline. That is the only way we know to ship the same behaviour in twenty-odd languages and mean it.

Seneca is the oldest, from 2010, and the origin of the habit that runs through the rest: describe what happens as messages matched by pattern. Its matcher, patrun, still sits under the Voxgig system runtime, and the system scaffold in the voxgig org still generates a Seneca backend.

Active repositories#

The voxgig organisation holds 39 repositories. These are the 21 pushed to in the 6 months before , collected by section and newest first within each. The rest are still on GitHub. Some are finished, some are parked.

SDK Generator 7

Repository What it is Package Last push
sdkgen The generator itself: SDK, CLI, MCP Server, Agent Skills, REPL and Semantic Model from one OpenAPI description. @voxgig/sdkgen
apidef Reads an OpenAPI 3 or Swagger 2 description and produces the API model, entities, operations, fields and flows, that the generator works from. @voxgig/apidef
apidef-validate The validation corpus for apidef: real API definitions, the model each is expected to produce, and a harness that diffs a pinned release against them. none
create-sdkgen Scaffolds a generator project from your OpenAPI description: npm create @voxgig/sdkgen. @voxgig/create-sdkgen
station One control surface for outbound integrations. Sits between an application and every SDK the generator produced for it. @voxgig/station
docgen An sdkgen package that generates a documentation site for an API and the SDKs generated from it. @voxgig/docgen
station-view Local web viewer for @voxgig/station SDK activity. none

aontu 1

Repository What it is Package Last push
model Universal application modelling: describe a system once as a declarative model, then generate code, configuration, documentation and infrastructure from it. @voxgig/model

jostraca 1

Repository What it is Package Last push
build Code generation for Voxgig system projects: reads the compiled model and writes deployment artifacts and application code with jostraca. @voxgig/build

Seneca 2

Repository What it is Package Last push
create-system Scaffolds a Seneca microservices backend with a model-driven entity layer: npm create @voxgig/system. @voxgig/create-system
system Runtime and tooling for Voxgig system projects: service loading by convention, local and live system assembly, and a CLI that adds entities, services and messages to the model. @voxgig/system

Voxgig tools 5

Repository What it is Package Last push
omni One JSON test spec, run by the same runner in every language a library is ported to. It is how the ports stay in agreement. @voxgig/omni
plugin One plugin architecture, defined once in TypeScript and ported to every language the SDKs ship in. @voxgig/plugin
sekreto One interface for secrets, wherever they live: environment variables, dotenv files, Vault and the cloud secret managers. Moving from dotenv to a vault is a config change, not a code change. @voxgig/sekreto
struct The data manipulation primitive inside every generated SDK: getpath, merge, transform, validate and the rest, ported to each target language against one shared corpus. @voxgig/struct
util Small shared utility functions used across Voxgig code, in TypeScript and Go. @voxgig/util

Other repositories 5

Repository What it is Package Last push
repo-manager Multi-forge repository management: cross-repo work-item inbox and fleet policy engine. none
conf-agenda Conference agenda platform: keyboard-first SaaS, ejectable embed, multi-calendar speaker invitations. none
voxgig-ui Command bar, key-binding registry, shortcut overlay and virtualised keyed list for Voxgig web apps. none
diagram System architecture diagrams. none
udk Universal Development Kit for APIs. none

Active means a push to any branch since 6 March 2026. A repository that has not moved in six months drops off this list and stays on GitHub; quiet is not the same as abandoned.

7
sections, each with a page of its own
21
of 39 repositories at github.com/voxgig pushed to in the 6 months before 6 September 2026
600+
generated SDKs at github.com/voxgig-sdk
MIT
on the generator, its toolchain, the tools, aontu, jostraca, tabnas and Seneca

Using it, and getting help#

Issues and pull requests

Every project takes both, on GitHub. A small pull request with a test is the fastest way to get a change in. If you are not sure a change fits, open an issue first and say what you are trying to do; you will get a straight answer.

The multi-language tools share one test corpus, so a fix in the TypeScript canonical usually needs the same fix in each port. The corpus tells you which ports are behind.

When you need more than a README

The open source is free and stays free. The same people who write it do paid work: taking a generated SDK to production grade, building an MCP server your customers' agents can use, or standing up a developer relations program. That is the API Experience practice, and it is how the open source gets paid for.

Start with the code#

Every repository is public. Read it, fork it, or send a pull request. When a project needs to go further than its README, talk to us.

Get the Voxgig dispatch

Short notes on building SDKs, CLIs, REPLs, and MCPs for API-first teams, plus the occasional Fireside episode pick.

By signing up you agree to our Terms and Conditions.