Skip to content

primsh/prim.sh

prim.sh

prim.sh

The agent-native stack.

Zero signup. One payment token. Infinite primitives.

Just add mcp.prim.sh, pay with USDC, use every service.

CI License Discord X Stars

Website · llms.txt · Discord · @primitiveshell · Costs


What is Prim?

Every cloud service requires a human signup flow — email verification, credit cards, dashboards, OAuth consent screens. Agents can't do any of that.

Prim abstracts the cloud away. We sign up for the providers so agents don't have to. Each primitive wraps a real cloud service behind a simple HTTP API, authenticated by x402 micropayments (USDC on Base). No accounts, no OAuth, no credit cards — just a funded wallet.

An agent with 10 USDC can provision a VPS, store files, send email, register a domain, deploy a token, and search the web. All in one session, without a human touching anything.

Status: Private beta on Base Sepolia testnet.

Getting Started

# Install the CLI
curl -fsSL prim.sh/install.sh | sh

# Create a wallet (local keypair, registered on-chain)
prim wallet create

# Get test USDC from the faucet
prim faucet usdc

# Use any primitive — the CLI handles x402 payment signing
prim store create-bucket
prim store put my-bucket hello.txt ./hello.txt
prim store get my-bucket hello.txt

No API keys. No signup. The wallet is the identity.

Primitives

Primitive What it does Status
wallet.sh Agent wallets. Generate keys, hold USDC on Base, and pay any x402 invoice. Live (mainnet)
faucet.sh Free testnet USDC and ETH on demand. Fund your agent wallet and start building. Live (testnet)
store.sh Object storage. Persist artifacts across ephemeral VMs. S3-compatible. Live (mainnet)
search.sh Search for agents. Zero ads, zero SEO spam. Just facts and clean markdown. Live (mainnet)
spawn.sh VPS in one API call. Deploy, scale, destroy. Per-second billing. Hold
email.sh Mailboxes on demand. Send, receive, webhook. Disposable or permanent. Hold
token.sh Deploy ERC-20 tokens and Uniswap V3 pools. Zero wallet setup. Hold
mem.sh Vector store and cache for agents. Persist long-term knowledge and session state. Hold
domain.sh Register domains, manage DNS, auto-TLS. Full domain lifecycle via API. Hold
deploy.sh Push code, get an endpoint. Container or repo URL to live service. No server config. Planned
track.sh Package tracking for agents. USPS, FedEx, UPS, DHL and 1000+ carriers. Status, ETA, full event history. Hold
ring.sh Phone numbers via API. SMS, voice, TTS. No Twilio account needed. Planned
pipe.sh Pub/sub channels, webhook relays, event queues. Agent-to-agent glue. Planned
vault.sh Store API keys, tokens, credentials. Scoped access. Ephemeral or persistent. Planned
cron.sh Run code on a schedule without a server. Cron, intervals, one-shots. Planned
code.sh Sandboxed code execution for agents. Short-lived jobs instead of long-lived servers. Planned
browse.sh Headless Chromium sessions for agents. Click, type, and capture pages via API. Planned
watch.sh Structured logs, metrics, and alerts so agents can observe and correct themselves. Planned
trace.sh Distributed tracing across services. Follow a request from wallet to spawn to store. Planned
auth.sh Managed OAuth broker. Connect to third-party APIs without giving agents passwords. Planned
create.sh Scaffold new prim.sh primitives. Write a prim.yaml spec, get a complete package with passing tests. Hold
imagine.sh Media generation for agents. Images, video, audio. Any model, one API. Zero API keys. Hold

See the full catalog at prim.sh/llms.txt.

How It Works

Agent                    Prim                     Base (L2)
  |                        |                         |
  |-- POST /v1/buckets --> |                         |
  |<-- 402 + payment req --|                         |
  |                        |                         |
  |-- Sign EIP-3009 -----> |                         |
  |-- Retry with payment ->|-- settle on-chain ----->|
  |<-- 201 bucket created -|                         |
  1. Agent calls any endpoint.
  2. Gets HTTP 402 with payment requirements (amount, token, payTo address).
  3. Signs an EIP-3009 transferWithAuthorization off-chain.
  4. Retries with the payment header. Facilitator settles USDC on Base. Agent gets the resource.

Gas is sub-cent on Base. Agents pay per-request in USDC. No subscriptions, no metering, no invoices.

Providers

Each primitive wraps a real provider. We manage the accounts and credentials. The agent just pays and gets the resource.

Primitive Current Provider Notes
store.sh Cloudflare R2 S3-compatible. Free egress.
spawn.sh DigitalOcean $4/mo droplets. Provider-abstracted — adding more.
email.sh Stalwart (self-hosted) JMAP + SMTP. Full send/receive.
domain.sh Cloudflare DNS + NameSilo Zone management + domain registration.
search.sh Tavily Web search, news, URL extraction.
token.sh Base (Ethereum L2) ERC-20 deploy + Uniswap V3 via on-chain contracts.
mem.sh Qdrant (self-hosted) Vector search + SQLite KV cache.

The provider layer is abstracted — spawn.sh defines a CloudProvider interface, making it straightforward to add new providers. More providers per primitive over time.

See pricing details at prim.sh/costs.

Architecture

  • TypeScript + Bun — no build step, Bun runs TS natively.
  • Hono — web framework for every primitive.
  • x402Coinbase payment protocol. USDC on Base.
  • Each primitive is independent. No shared database. Shared @primsh/x402-middleware only.
  • pnpm workspaces — monorepo, each primitive is packages/<name>/.

For Agents

Point your agent at https://prim.sh/llms.txt for machine-readable documentation covering all primitives, endpoints, and authentication.

Use @primsh/x402-client (TypeScript) or any x402-compatible client to handle payment automatically:

import { createPrimFetch } from "@primsh/x402-client";

const fetch402 = createPrimFetch({ privateKey: AGENT_PRIVATE_KEY });
const res = await fetch402("https://store.prim.sh/v1/buckets", {
  method: "POST",
  body: JSON.stringify({ name: "my-data" }),
});

Self-Hosting

Use prim.sh — pay per request, no accounts needed. Or self-host — clone the repo, bring your own provider keys.

git clone https://github.com/primsh/prim.sh
cd prim.sh && pnpm install
# Configure provider keys in .env files, then run any primitive
bun run packages/store/src/index.ts

Each primitive is independent. Run only what you need.

Contributing

See CONTRIBUTING.md.

License

Apache License 2.0

About

Infrastructure primitives for autonomous agents. No signup. No GUI. No KYC. Pay with USDC, get resources.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors