# @kibibot/cli

The official KibiBot command-line interface. Deploy tokens on-chain, check balances, check fee earnings, manage Kibi Credits, manage your agent profile, and control your AI agent from the terminal.

## Installation

```bash
npm install -g @kibibot/cli
```

```bash
kibi --version
```

### Run without installing

```bash
npx @kibibot/cli whoami
npx @kibibot/cli token create --name MyToken --symbol MTK --chain base
```

## Setup

### 1. Get an API key

Go to [kibi.bot/settings/api-keys](https://kibi.bot/settings/api-keys) → Create API Key → copy the `kb_...` key.

### 2. Login

```bash
# Interactive — prompts for API key
kibi login

# Headless — pass key directly
kibi login --api-key kb_YOUR_KEY
```

Credentials are stored in `~/.kibi/config.json`. You can also set `KIBI_API_KEY` as an environment variable.

### 3. Verify

```bash
kibi whoami
```

## Commands

### Identity

```bash
kibi whoami          # your account info and wallet addresses
kibi logout          # clear stored credentials
```

### Token Creation

```bash
# Interactive (prompts for name, symbol, target user, chain, platform, source, image, fee sharing)
kibi token create

# Headless
kibi token create --name "MyToken" --symbol MTK --chain base
kibi token create --name "Moon" --symbol MOON --chain solana --description "To the moon"
kibi token create --name "Moon" --symbol MOON --chain base --image-url https://example.com/moon.png
kibi token create --name "Moon" --symbol MOON --chain base --source https://x.com/user/status/123
kibi token create --name "Test" --symbol TST --chain base --no-wait  # return job ID immediately

# Robinhood Chain (native token is ETH; flap is the default platform)
kibi token create --name "Moon" --symbol MOON --chain robinhood
kibi token create --name "Moon" --symbol MOON --chain robinhood --platform doppler

# With platform override (default platform used if omitted)
kibi token create --name "Moon" --symbol MOON --chain base --platform clanker
kibi token create --name "Moon" --symbol MOON --chain bnb --platform fourmeme

# Create token for another X/Twitter user
kibi token create --name "Fan Token" --symbol FAN --for alice --chain bnb --platform flap

# Fee sharing (only with --for, on platforms that support it)
kibi token create --name "Fan Token" --symbol FAN --for alice --chain bnb --platform flap --fee "alice:60"
kibi token create --name "Collab" --symbol COL --for alice --chain bnb --platform flap --fee "alice:50,bob:10"

# Check deployment status
kibi status 12345

# Get token info
kibi token info 0x1234...
kibi token info 5Yz8K... --chain solana

# List tokens you've created
kibi tokens created
kibi tokens created --page 2
```

#### Create for another user

Use `--for <handle>` to create a token on behalf of another X/Twitter user. The target user becomes the default fee recipient. In interactive mode, this is presented as a choice after entering the token name and symbol.

#### Fee sharing

Use `--fee` to split creator fees among multiple recipients. Each entry is `handle:percent` or `0xAddress:percent`, comma-separated. Percentages represent shares of total fees and must not exceed the platform's creator fee ceiling (e.g. 70% on Flap, where KibiBot takes 30%). Any unallocated remainder goes to you automatically.

Fee sharing requires `--for` and is only available on platforms that support it (flap, bfun, clanker, basememe, doppler). In interactive mode, fee sharing prompts appear automatically when creating for another user.

Note that **flap on Robinhood does not support fee splitting** — the creator takes 100% of a 1% tax and there is exactly one recipient. Doppler on Robinhood splits normally. The CLI reads each platform's config from the API, so it will tell you when a split isn't available rather than letting you configure one that gets rejected.

Supported chains: `bnb` · `robinhood` · `base` · `solana`

Supported platforms: `flap` · `fourmeme` · `bfun` (BNB Chain) · `flap` · `doppler` (Robinhood) · `basememe` · `clanker` · `doppler` (Base) · `pumpfun` (Solana)

Defaults: bnb → flap · robinhood → flap · base → basememe · solana → pumpfun

#### Robinhood Chain

Robinhood Chain (ID `4663`) is an EVM L2. Its **native gas token is ETH**, but it is a *separate* chain from Base — **ETH on Base is not spendable on Robinhood.** Because both chains call their native token "ETH", `kibi balances` lists them as separate rows:

```
    ETH (Base)         0.004525 ETH (~$8.04)
    ETH (Robinhood)    0 ETH
    USDG (Robinhood)   25 USDG
```

Robinhood's stablecoin is **USDG** (Paxos "Global Dollar"), not USDC.

Use `kibi balances` to see what you **hold**, and `kibi quota` to see whether your **trading wallet** can self-pay a launch on a given chain once the free mints are used.

Fee earnings on Robinhood are ETH-denominated (not BNB, despite flap also running on BNB Chain). Flap earnings on Robinhood are an **estimate derived from trading volume** and are **auto-distributed** — there is no claimable balance to collect. Doppler earnings on Robinhood are a real, live claim.

You can pass `--chain rh` as a shorthand; the CLI normalises it to `robinhood` before calling the API.

### Balances & Quota

```bash
kibi balances        # what you HOLD — main + trading wallets across Base, BSC,
                     # Robinhood (ETH + USDG) and Solana, with USD values
kibi quota           # SPENDING POWER — daily free mints left, and whether the
                     # trading wallet can self-pay a launch, per chain
```

### Fee Earnings

```bash
# Summary across all chains (with USD values)
kibi fees

# Per-platform breakdown for a specific chain (with USD values)
kibi fees --chain bnb
kibi fees --chain robinhood
kibi fees --chain base
kibi fees --chain solana

# Fee earnings for a specific token
kibi fees --chain bnb --platform flap --token 0x1234...
kibi fees --chain bnb --platform fourmeme --token 0x1234...
kibi fees --chain bnb --platform bfun --token 0x1234...
kibi fees --chain robinhood --platform flap --token 0x1234...   # reported in ETH
kibi fees --chain solana --platform pumpfun --token 5Yz8K...
```

Supported platforms: `flap` · `fourmeme` · `bfun` (BNB Chain) · `flap` (Robinhood) · `basememe` · `clanker` · `doppler` (Base) · `pumpfun` (Solana)

Robinhood earnings are reported in **ETH**. Flap-on-Robinhood earnings are a volume-based estimate that auto-distributes (no claimable balance); the Doppler claim shown for Robinhood is live.

### Kibi Credits & Kibi LLM Gateway

```bash
# Check Kibi LLM Credits balance + agent reload config
kibi llm credits

# List available AI models
kibi llm models

# Reload Kibi Credits from trading wallet (requires Agent Reload enabled)
kibi llm reload

# Emergency disable agent reload
kibi llm reload --disable

# Generate provider config for your tool
kibi llm setup openclaw   # OpenClaw config JSON (use with --install to write directly)
```

### Agent Profile

Manage your public agent profile on [kibi.bot/agent/profiles](https://kibi.bot/agent/profiles). Earnings data (total earnings, token count, top earning tokens) is automatically populated from your KibiBot token history — no manual token linking needed.

```bash
# View your profile
kibi profile
kibi profile --json

# Create a profile (interactive wizard, prompts to submit for review)
kibi profile create

# Create with flags
kibi profile create --name "My Agent" --description "An autonomous trading bot"

# Update profile fields
kibi profile update --name "New Name"
kibi profile update --description "Updated description"

# Submit for admin review
kibi profile submit

# Project updates (changelog / announcements)
kibi profile add-project-update --title "v2.0" --content "Multi-chain support is here!"
kibi profile delete-project-update <uuid>

# Delete profile (draft/rejected only)
kibi profile delete
```

#### kibi.toml

Team members and products can be set via a `kibi.toml` file in your project directory. The CLI auto-reads it during `create` and `update`.

```toml
[profile]
name        = "My Agent"
description = "Does something useful on-chain."

[[profile.team_members]]
name = "Alice"
role = "Lead Dev"
links = ["https://twitter.com/alice"]

[[profile.products]]
name        = "Swap Engine"
description = "Optimised DEX routing"
url         = "https://my-agent.xyz/swap"
```

#### Profile status flow

Profiles start as `draft` and must be submitted for admin review before appearing publicly.

| Status | Visible? | Description |
|---|---|---|
| `draft` | No | Initial state, editable |
| `pending_review` | No | Awaiting admin approval |
| `approved` | Yes | Publicly listed on kibi.bot/agent/profiles |
| `rejected` | No | Admin rejected — edit and re-submit |
| `approved_pending_changes` | Yes | Approved profile with edits awaiting review |

Editing an approved profile stores changes as pending — the live version stays public until an admin approves the edits.

### Config

```bash
kibi config get           # show all config
kibi config get apiKey    # show specific key
kibi config set apiKey kb_YOUR_KEY

kibi about               # version, links, branding
```

## Global Flags

| Flag | Description |
|---|---|
| `--json` | Machine-readable JSON output |
| `--debug` | Verbose HTTP request/response logging |
| `--version` | Print version |
| `--help` | Print help |

## Configuration

Config precedence (highest to lowest):

1. **Environment variable** — `KIBI_API_KEY`
2. **Config file** — `~/.kibi/config.json`

## Requirements

- Node.js >= 18.0.0

## Links

- [Agent & Developer Docs](https://kibi.bot/docs/agent)
- [API Keys](https://kibi.bot/settings/api-keys)
- [Kibi Credits](https://kibi.bot/credits)
- [GitHub Skills](https://github.com/KibiAgent/skills)

## License

MIT
