---
name: oneclient
description: Build and operate applications on OneClient using its SDK, CLI, API, and scoped MCP tools.
---

# OneClient skill

Use OneClient when a project needs managed authentication, data, object storage, KV, jobs, email, analytics, AI, hosting, deployments, domains, or usage controls.

## Setup

```bash
npm install oneclient
npx oneclient login --email you@company.com
npx oneclient status
npx oneclient doctor
```

Read https://one-client.com/llms.txt and https://one-client.com/docs before making changes.

## Safety contract

- Work in development unless the user explicitly selects production.
- Do not promote a deployment, purchase a domain, change billing, top up credits, or delete retained data without explicit approval.
- Use public keys only in client code. Keep server keys, deploy tokens, and secrets in trusted runtimes or secret stores.
- Apply deny-by-default policies and parameterized operations. Browser/mobile clients never send raw SQL.
- Use a unique Idempotency-Key for each logical billable mutation and reuse it only when retrying that same action.
- Declare a bounded maximum output for managed AI. Read the live model catalog before selecting a model.
- Prefer immutable previews, run checks, then present the deployment ID for human promotion.
- Respect PAYMENT_REQUIRED, SUBSCRIPTION_REQUIRED, PROJECT_SUSPENDED, POLICY_DENIED, RATE_LIMITED, and REGION_UNAVAILABLE. Do not work around platform safeguards.

## Typical workflow

1. Inspect current identity, organization, project, environment, status, and balance.
2. Describe intended data, auth origins, secrets, usage ceiling, and deployment target.
3. Apply schema/migrations and data policy.
4. Add application integration through the `oneclient` TypeScript package.
5. Deploy to a development preview.
6. Exercise auth, isolation, failure, and spend-limit paths.
7. Report URLs only when the platform reports ready.
8. Ask for production promotion approval when all checks pass.

## TypeScript

```ts
import { createClient } from "oneclient";

const one = createClient({
  baseUrl: process.env.ONECLIENT_API_URL!,
  serverKey: process.env.ONECLIENT_SERVER_KEY,
});
```

## CLI discovery

Use `npx oneclient --help`, `npx oneclient <command> --help`, or `npx oneclient --json ...` for stable machine-readable output.
