
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
typeship-ax
Advanced tools
TypeScript SDK, CLI, and MCP server for typeship. API reference
Generated from the OpenAPI spec by typeship. Change the spec or generation settings, then regenerate; generated files are not hand-edited.
fetch (Node 18+, browsers, edge runtimes)ApiResult<T, E> where E lists each documented error for that exact operationfor await any list call to stream every item across every pageRetry-After supportvalidate: true schema-checks request and response bodies against the spec, still zero dependenciessideEffects: falsenpm install typeship-ax
import { TypeshipClient } from "typeship-ax";
const client = new TypeshipClient({ bearerToken: process.env.TYPESHIP_TOKEN! });
for await (const item of client.projects.list()) {
console.log(item);
}
bearerToken (a string, or a callback for tokens that expire), sent as Authorization: Bearer <token>.defaultHeaders adds headers to every request (API version headers, tenant ids); onRequest can rewrite any request before it is sent.
Awaiting a call returns a discriminated result instead of throwing on request errors. The error side is a union of the documented error classes for that operation:
import { BadRequestError } from "typeship-ax";
const result = await client.projects.list();
if (!result.ok) {
if (result.error instanceof BadRequestError) {
// result.error.body is fully typed for this status
}
throw result.error; // every branch is an Error subclass
}
result.data; // typed success payload
Prefer exceptions? unwrap(result) returns the data or throws the typed error.
Await a list call to inspect its ApiResult, or iterate it for concise lazy pagination. Async iteration throws the same typed API error if any page fails:
for await (const item of client.projects.list()) {
// every item from every page, fetched lazily
}
// or page manually:
const page = await client.projects.list();
if (page.ok) {
page.data.items;
await page.data.getNextPage();
}
The package ships typeship, a command for every API operation. It writes JSON to stdout and uses exit codes 0/1/2 for success, request failure, and invalid usage.
npm install -g typeship-ax
typeship login # stores a credential (or set TYPESHIP_TOKEN)
typeship projects list
typeship projects list --all | jq -r '.id' # every page, one item per line
typeship <resource> <command> --help # flags, types, an example
CLI conventions:
--data @file and --data - read a full body.--fields id,name projects results. --all streams paginated results as NDJSON.--force. Piped errors are stable JSON on stderr.Auth: typeship login stores a credential under ~/.config/typeship/; the environment (TYPESHIP_TOKEN) and flags (--token) win over it. TYPESHIP_BASE_URL / --base-url pick the endpoint.
Useful commands:
typeship init configures credentials, MCP clients, and repository agent instructions.typeship mcp install --all registers the MCP server with supported agent clients.typeship docs search <term>, typeship doctor, and typeship help --json cover discovery and diagnostics.A zero-dependency stdio server exposing every operation as a tool. The fastest setup is typeship mcp install --all. For a manual MCP client configuration:
{
"mcpServers": {
"typeship": {
"command": "npx",
"args": [
"-y",
"--package",
"typeship-ax",
"typeship-mcp"
]
}
}
}
Tool input schemas are derived from the OpenAPI spec, so agents see real parameter types and required fields. Arguments are checked before anything reaches the API (unknown or mistyped ones come back as one isError result, nothing is dropped), every tool takes fields to keep only the result keys it needs, and errors carry a stable code and next_steps.
Add --read-only to args (or set TYPESHIP_MCP_READ_ONLY=1) for a server that cannot write, --tools accounts,reports (or TYPESHIP_MCP_TOOLS) to expose a subset, and TYPESHIP_MCP_MAX_RESULT_CHARS to change the result size cap (64,000). typeship mcp install --all --read-only writes read-only entries for every detected client.
new TypeshipClient({
baseUrl: "https://typeship.dev/api/v1", // default
timeoutMs: 30_000, // per attempt
maxRetries: 2, // retryable failures only
fetch: globalThis.fetch, // or your own: proxies, tests, instrumentation
});
Per-call overrides ride on the last argument: { timeoutMs, maxRetries, headers, signal }.
FAQs
TypeScript SDK + CLI + MCP server for typeship. Generated by typeship.
We found that typeship-ax demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.