1clawAI

1claw SDK — AI skill for Claude Code

AI community

TypeScript SDK for 1Claw Vault — secret management for AI agents.

How to install 1claw SDK

This entry records only its repository, not the path inside it, so there is no exact command to give. Open 1clawAI/1claw-sdk and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What 1claw SDK does

TypeScript SDK for 1Claw Vault — secret management for AI agents.

Alternatives in AI

README

@1claw/sdk (v0.61.0)

⭐ **Star [1clawAI/agent-templates](https://github.com/1clawAI/agent-templates)** — ready-to-run agent templates wired to 1Claw. It is our single starred repo.

TypeScript/JavaScript client for the 1Claw Vault API.

This is the official SDK for Node.js, Next.js, and browser apps that call 1Claw over HTTP. It covers vaults, secrets, agents, policies, treasury, Intents API signing, execution bindings, platform apps, billing, and x402 payments. Types are generated from the OpenAPI spec, so request shapes stay in sync with the API.

Agent keys auto-exchange for JWTs and refresh before expiry. If you're wiring an AI agent in Cursor or Claude Desktop, you probably want [@1claw/mcp](https://www.npmjs.com/package/@1claw/mcp) instead. If you're building a web app or backend service in TypeScript, start here.

Install

npm install @1claw/sdk

**Note:** This package is **ESM-only**. Use it in an ESM context (e.g. `"type": "module"` in `package.json`, or `.mjs` files). Next.js and other bundlers handle ESM natively. Running scripts with plain `node` or `tsx` may require an ESM setup to avoid `ERR_PACKAGE_PATH_NOT_EXPORTED`.

Quick Start

import { createClient } from "@1claw/sdk";

const client = createClient({
    baseUrl: "https://api.1claw.co",
    apiKey: "ocv_...", // auto-exchanges for a JWT
});

// List vaults
const { data } = await client.vault.list();
console.log(data?.vaults);

// Store a secret
await client.secrets.set("vault-id", "OPENAI_KEY", "sk-...", {
    type: "api_key",
});

// Retrieve a secret.
// Every call returns { data, error }. `data` is null whenever `error` is set,
// so `data?.value` alone turns a 403 into a silent undefined — check `error`.
const { data, error, meta } = await client.secrets.get("vault-id", "OPENAI_KEY");
if (error) {
    console.error(meta?.status, error.type, error.message, meta?.requestId);
} else {
    console.log(data?.value);
}

**API contract:** This SDK is built from