# Ponako agent setup

This file is for coding agents. Humans use https://ponako.com.

## Site map

- https://ponako.com/ — home: ask a question, or let a spare computer earn
- https://ponako.com/how — how it works
- https://ponako.com/developers — OpenAI-compatible client setup
- https://ponako.com/market — live models and prices
- https://ponako.com/llms.txt — this file (same bytes at https://ponako.com/agent.md)
- https://ponako.com/v1 — OpenAI-compatible API (`GET /v1/models`, `POST /v1/chat/completions`)

## Ask first: consumer or provider

Before any command, environment variable, or file edit: ask the human which path they want.

- Consumer: use Ponako instead of another API (OpenAI, Claude, Grok, Codex, or similar).
- Provider: host a model on a spare computer and get paid.

Do not assume. Do not run both. Wait for a clear answer.

---

## Consumer

Ponako is an OpenAI-compatible chat-completions gateway.

- Base URL: `https://ponako.com/v1` (or `{public_url}/v1` if they named another host).
- API key: a secret that starts with `sk-scalar-`.
- Spend: prepaid USD credits. A new account gets a one-time $1 welcome credit. Add more with a card in the dashboard. There is no demo credit button.
- Model: a live id from `GET https://ponako.com/v1/models`, or `auto`.
- Protocol: `POST /v1/chat/completions` (stream and non-stream). There is no `/v1/messages` and no `/v1/responses`.
- Extra request headers next to the usual `Authorization` bearer key:
  - `X-Scalar-Min-Tier` — minimum trust (`community`, `always-on`, `verified`).
  - `X-Scalar-Require-Hash: 1` — only hash-checked boxes.
  - `X-Scalar-Vet: 1` — a second provider compares the answer.
  - `X-Scalar-Min-Tps` — only boxes whose measured tokens-per-second meet this floor (8 or higher). The reply may include `X-Scalar-Tok-Per-S`.

### Account and key

1. Open https://ponako.com, create an account (email + password), or reuse one.
2. Open Your Ponako (`/app`) and create a named key. The full `sk-scalar-...` secret is shown once.
3. Agents may also `POST /auth/register` then `POST /keys` with the session cookie. Do not invent other signup APIs.

Keep the key in an environment variable. Do not commit it.

### OpenAI Python

```python
from openai import OpenAI

client = OpenAI(
    base_url="https://ponako.com/v1",
    api_key="sk-scalar-YOUR-KEY",
)

reply = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Hello from Ponako"}],
)
print(reply.choices[0].message.content)
```

Env names the official SDK already reads: `OPENAI_BASE_URL=https://ponako.com/v1` and `OPENAI_API_KEY=sk-scalar-YOUR-KEY`.

### OpenAI JavaScript

```js
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://ponako.com/v1",
  apiKey: process.env.OPENAI_API_KEY,
});
```

Same env names: `OPENAI_BASE_URL` and `OPENAI_API_KEY`.

### Codex CLI

Codex stores durable settings in `~/.codex/config.toml`. Do not invent `CODEX_BASE_URL`. Official env names are `CODEX_HOME` and, for one `codex exec` run, `CODEX_API_KEY`.

Ponako speaks Chat Completions only. Current Codex custom providers default to the Responses API (`POST /v1/responses`), which Ponako does not serve. Prefer the OpenAI SDK above.

If this Codex still accepts a Chat Completions wire, a matching custom provider looks like:

```toml
model = "auto"
model_provider = "ponako"

[model_providers.ponako]
name = "Ponako"
base_url = "https://ponako.com/v1"
env_key = "OPENAI_API_KEY"
wire_api = "chat"
```

```bash
export OPENAI_API_KEY="sk-scalar-YOUR-KEY"
```

Do not set `openai_base_url` to Ponako unless you have confirmed that build still posts `/chat/completions`. A Responses-only Codex pointed at Ponako will 404.

### Claude Code / Claude CLI

Do not set `ANTHROPIC_BASE_URL=https://ponako.com/v1`. Claude Code and Claude CLI speak the Anthropic Messages API (`/v1/messages`). Ponako has no such route, so that env pair 404s.

Official Claude env names (`ANTHROPIC_API_KEY`, `ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`) only work against an Anthropic-shaped gateway. Ponako is not one.

Use the OpenAI Python or JS snippet, or another OpenAI-compatible client below.

### Grok / xAI CLI (`grok`)

Default xAI env is `XAI_API_KEY` against `https://api.x.ai/v1`. That is not Ponako.

Add a custom model in `~/.grok/config.toml` (Windows: `%USERPROFILE%\.grok\config.toml`):

```toml
[model.ponako]
model = "auto"
base_url = "https://ponako.com/v1"
name = "Ponako"
env_key = "OPENAI_API_KEY"

[models]
default = "ponako"
```

```bash
export OPENAI_API_KEY="sk-scalar-YOUR-KEY"
grok inspect
grok -p "Hello" -m ponako
```

Do not invent `XAI_BASE_URL` or `GROK_BASE_URL`.

### Cursor

Cursor Settings → Models:

1. Paste the `sk-scalar-...` key in OpenAI API Key.
2. Enable Override OpenAI Base URL.
3. Set the URL to `https://ponako.com/v1`.
4. Add a custom model id from `GET /v1/models` (or `auto`) if the default OpenAI names are not on the market.

Cursor stores keys in its own secure storage, not a project env file.

### Continue

Edit `~/.continue/config.yaml` (or the project `.continue/config.yaml`):

```yaml
name: Ponako
version: 0.0.1
schema: v1
models:
  - name: Ponako
    provider: openai
    model: auto
    apiBase: https://ponako.com/v1
    apiKey: sk-scalar-YOUR-KEY
```

Field names are `apiBase` and `apiKey`, not invented env vars.

### Cline

Cline settings → API Provider → OpenAI Compatible:

- Base URL: `https://ponako.com/v1`
- API Key: `sk-scalar-YOUR-KEY`
- Model ID: a live catalog id or `auto`

Do not pick the Anthropic provider.

### Aider

Official OpenAI-compatible env names are `OPENAI_API_BASE` and `OPENAI_API_KEY` (or `--openai-api-base` / `AIDER_OPENAI_API_BASE`):

```bash
export OPENAI_API_BASE=https://ponako.com/v1
export OPENAI_API_KEY=sk-scalar-YOUR-KEY
aider --model openai/auto
```

Prefix the model with `openai/` so Aider routes through that base.

---

## Provider

Host a catalog model on a Linux machine you can leave on. Outbound only.

```bash
curl -fsSL https://ponako.com/install.sh | bash
```

What that does:

- Downloads the provider and probes hardware.
- Picks a catalog model that fits measured VRAM. Do not override with a bigger model.
- Dials the control plane outbound. No inbound ports. Do not open or forward ports. Do not install a reverse proxy for jobs.
- Serves chat completions as a proxy. Do not add a tool-calling agent loop on the host. Do not eval model output.
- The provider may send a hardware probe and catalog file hashes only. Do not upload other files.

Pay:

- The provider keeps 85% of each settled job. The platform keeps 15%.
- Cash out with Stripe Connect from the dashboard. Minimum payout is $5.
- Pause anytime (stop the process). No crypto wallets.

Create or reuse a Ponako account first so earnings have a place to land.
