v0.xMulti-provider · Apache 2.0 · Node 20+

Universal API for fork

A unified TypeScript SDK for storage with first-class support for snapshotting, forking across many storage providers.

npm install @storagesdk/core @storagesdk/adapters
one api

Same API across every provider.

Switch providers by changing the import; the call site doesn't move. Verbs are named after what you want — not what the backend calls it.

More →
storage.ts
import { Storage } from '@storagesdk/core';
import { tigris } from '@storagesdk/adapters/tigris';
const storage = new Storage({
adapter: tigris({ bucket: 'agents' }),
});
Tigris · agents0 files
  • — empty —
snapshots & forks

Snapshots and Forks, built in.

Forks are sandboxes for your agents. Branch a bucket per run; let the agent upload, mutate, and delete freely; merge or throw the fork away when it's done. Snapshots make every run reproducible — start the next agent from the same frozen state.

snapshots-and-forks.ts
// Live writes flow into the parent
// Freeze the state — every fork seeds from here
// Two agents run in parallel, each with its own writable view
// Agent A: a creative rewrite
const a = storage.forks.get('agent-a');
// Agent B: a more conservative pass
const b = storage.forks.get('agent-b');
// Parent never moved — compare and merge whichever wins
parent · agents
  • — empty —
snapshot · baseline
— not created —
fork · agent-a
— not created —
fork · agent-b
— not created —
Native on Tigris and GitHub. Emulated as sibling buckets on S3, R2, GCS and others.
agents

Drop into any agent runtime.

Hand a Storage to the Vercel AI SDK or Mastra; or boot the MCP server for any host that speaks the protocol. Tool descriptions teach the model to snapshot before risky edits and fork to try variants — your undo and branching story comes baked in.

agent.ts
import { tools } from '@storagesdk/ai/vercel';
import { generateText } from 'ai';
const result = await generateText({
model: anthropic('claude-sonnet-4-5'),
tools: tools(storage, { scope: 'kb/' }),
prompt: 'Update kb/auth/ for the new SSO flow. Fork it so the originals stay.',
});
agent · scope: kb/
— waiting for prompt —
cli

Same SDK, in the shell.

@storagesdk/cli wraps every adapter in shell commands you've already typed a thousand times — ls, stat, cat, cp, mv, rm, sign. Familiar to humans; native vocabulary for every LLM trained on a terminal. cp and mv use a storage:// scheme to mark remote paths; pipes and redirects work the way you'd expect. Switch adapters with --adapter, scope writes into a fork with --fork.

CLI reference
storage
# install once, talk to every backend
$
features

More than the CRUD basics.

The same shape on every adapter — with the modern primitives you expect.

One SDK. Snapshots and forks on every provider.

Open source, Apache 2.0, ESM-only, Node 20+. Built by the Tigris team — for everyone.