One spec. Three shipping clients.
Six more on the way.
TypeScript devs: use @solidnumber/cli/sdk today. Everyone else: generate a typed client from the live OpenAPI spec — or wait for the native SDK for your language.
Available today
Real packages on real registries. Every number below comes from the live product.
Solid# CLI
@solidnumber/cliAgent-ready by default — structured JSON error envelopes ship out of the box (SOLID_LEGACY_ERRORS=1 restores 1.x prose). 96+ commands, 500+ subcommands, self-diagnostic (solid doctor + doctor env), shell completion, tenant-guard refuses unsafe writes. solid graph walks, queries (SPARQL 1.1), diffs, and dumps the tenant JSON-LD graph online or offline. solid push --queue queues mutations when offline and auto-replays on reconnect. v2.2.0 adds magic-link install: solid setup --install-token redeems an ist_* token from /dashboard/install-command for zero-browser auth. Also importable as a TypeScript library.
npm i -g @solidnumber/cliMCP Server
@solidnumber/mcp608 tools across 36 categories. Claude Code, Cursor, Windsurf connect via stdio. One config file, Bearer-token auth, tenant-scoped.
npx -y @solidnumber/mcpREST API
1,615 endpointsCurated REST reference at /docs/api — categories, auth, error envelope, examples. The full OpenAPI 3.0 spec is gated for security; authenticated developers can request access via the dashboard.
open https://solidnumber.com/docs/apiPython SDK
solidnumber (PyPI)Hand-written core — SolidClient (sync, httpx-based), Bearer auth via SOLID_API_KEY env or constructor kwarg, typed error envelope mirroring the CLI v2.0 shape (AuthError, RateLimitError, NotFoundError, ValidationError, ServerError). 17/17 tests green. Full resource coverage (1,615 endpoints) lands in v0.1 via openapi-python-client codegen on top of this core. Installable from source today; PyPI publish ships with v0.1.
pip install -e git+https://github.com/Solidnumber/solid-python.gitTypeScript library quickstart
@solidnumber/cli is dual-purpose: a CLI binary and an importable TypeScript library. Same auth, same api-client, same type definitions.
// Already installed @solidnumber/cli as a CLI tool?
// The same package is an importable TypeScript library.
import { apiClient, handleApiError } from '@solidnumber/cli/sdk';
// Auth is read from ~/.solid/config.json (or SOLID_API_KEY env var)
// For CI/CD, pass a one-shot token:
// import { setOverrideToken } from '@solidnumber/cli/sdk';
// setOverrideToken(process.env.SOLID_API_KEY!);
try {
const { data } = await apiClient.get('/api/v1/crm/contacts', {
params: { limit: 50, search: 'acme' }
});
console.log(`Found ${data.items.length} contacts`);
} catch (err) {
const apiErr = handleApiError(err);
console.error(`${apiErr.code}: ${apiErr.message}`);
}Already running the CLI in your project? Just import from it.
Dry-run interceptor, auth refresh, version-skew warnings — all active via the same flags.
Full .d.ts coverage. apiClient, handleApiError, setOverrideToken all typed.
Generate a client for any language
The full OpenAPI 3.0 spec covers all 1,615 endpoints. It's gated behind authenticated developer access for security. For exploration today, use solid api list and solid api docs <path> to browse + inspect endpoints. Auth-gated spec download for code generation is on the SPRINT-CLI-ONE-COMMAND-ONBOARDING Phase 3 roadmap.
# Browse + call endpoints from the CLI today (no spec download needed):
solid auth login
solid api list # enumerate endpoint categories
solid api docs /api/v1/orders # schema for one route
solid api call GET /api/v1/crm/contacts # make a real call
# Want the full OpenAPI spec for code generation? It's gated for security.
# Request access from your developer dashboard — the spec download is on
# the SPRINT-CLI-ONE-COMMAND-ONBOARDING Phase 3 roadmap (auth-gated route).
# For curated reference today, see /docs/api.Regenerate on CI. The spec updates every deploy. Use it as the contract between backend + client; let semantic-release + code-gen enforce breaking-change policy.
Native SDKs — on the roadmap
Waitlist openWe'd rather ship a great TypeScript SDK today than six mediocre SDKs that rot. These are prioritized by waitlist demand — add your vote.
github.com/solidnumber/go-sdksolidnumber (RubyGems)solidnumber/sdk (Packagist)com.solidnumber:sdkSolidNumber.Sdk (NuGet)Use the CLI to ping the founder directly — tells us which SDK to build first:
solid feedback "I want the Python SDK — shipping {use case} on {stack}"What every Solid# SDK includes
Bearer-token auth, automatic refresh, one-shot tokens for CI (never persisted to disk).
Error envelope: code, message, details[], request_id. Typed error classes per HTTP status.
Every mutating call accepts Idempotency-Key. Same key replays for 24h.
Reads X-RateLimit-Remaining + Retry-After, backs off, respects 429 automatically.
Preview every mutation server-side before committing. Built into the CLI + TS SDK today.
Every call auto-scopes to the API key’s company_id. You can’t cross-read tenants.
limit/offset + has_more. CLI and TS SDK expose fetchAll() for transparent pagination.
HMAC-SHA256 verify helpers. Code snippets for Node, Python, Go on /docs/api.
Start building today
@solidnumber/cli 2.2.0 · @solidnumber/mcp 1.0.1TypeScript + CLI shipping now. MCP for AI editors shipping now. Language SDKs on the roadmap — or roll your own from the OpenAPI spec today.