kubun
=================

Kubun CLI


[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/kubun.svg)](https://npmjs.org/package/kubun)
[![Downloads/week](https://img.shields.io/npm/dw/kubun.svg)](https://npmjs.org/package/kubun)


<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->
# Usage
<!-- usage -->
```sh-session
$ npm install -g kubun
$ kubun COMMAND
running command...
$ kubun (--version)
kubun/0.10.0 darwin-arm64 node-v26.0.0
$ kubun --help [COMMAND]
USAGE
  $ kubun COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`kubun account generate`](#kubun-account-generate)
* [`kubun account id`](#kubun-account-id)
* [`kubun graph deploy`](#kubun-graph-deploy)
* [`kubun graph mutate ID TEXT`](#kubun-graph-mutate-id-text)
* [`kubun graph query ID TEXT`](#kubun-graph-query-id-text)
* [`kubun graphql schema`](#kubun-graphql-schema)
* [`kubun help [COMMAND]`](#kubun-help-command)
* [`kubun mcp`](#kubun-mcp)
* [`kubun model cluster`](#kubun-model-cluster)
* [`kubun model create NAME SCHEMA`](#kubun-model-create-name-schema)
* [`kubun serve`](#kubun-serve)

## `kubun account generate`

Generate a random private key to use as account signer

```
USAGE
  $ kubun account generate

DESCRIPTION
  Generate a random private key to use as account signer
```

## `kubun account id`

Display the DID of an account given its private key

```
USAGE
  $ kubun account id -k <value>

FLAGS
  -k, --privateKey=<value>  (required) [env: KUBUN_PRIVATE_KEY] base64-encoded private key

DESCRIPTION
  Display the DID of an account given its private key
```

## `kubun graph deploy`

Deploy a documents model graph

```
USAGE
  $ kubun graph deploy -c <value>... -k <value> [--id <value>] [-n <value>] [--url <value>]

FLAGS
  -c, --cluster=<value>...  (required) path of the JSON file of the cluster
  -k, --privateKey=<value>  (required) [env: KUBUN_PRIVATE_KEY] base64-encoded private key
  -n, --name=<value>        graph name
      --id=<value>          graph ID
      --url=<value>         Kubun server URL

DESCRIPTION
  Deploy a documents model graph
```

## `kubun graph mutate ID TEXT`

Execute a GraphQL mutation on a graph

```
USAGE
  $ kubun graph mutate ID TEXT -k <value> [--url <value>] [--variables <value>]

ARGUMENTS
  ID    graph ID
  TEXT  mutation text

FLAGS
  -k, --privateKey=<value>  (required) [env: KUBUN_PRIVATE_KEY] base64-encoded private key
      --url=<value>         Kubun server URL
      --variables=<value>   query variables as JSON string

DESCRIPTION
  Execute a GraphQL mutation on a graph
```

## `kubun graph query ID TEXT`

Execute a GraphQL query on a graph

```
USAGE
  $ kubun graph query ID TEXT -k <value> [--url <value>] [--variables <value>]

ARGUMENTS
  ID    graph ID
  TEXT  query text

FLAGS
  -k, --privateKey=<value>  (required) [env: KUBUN_PRIVATE_KEY] base64-encoded private key
      --url=<value>         Kubun server URL
      --variables=<value>   query variables as JSON string

DESCRIPTION
  Execute a GraphQL query on a graph
```

## `kubun graphql schema`

Create a GraphQL schema from clusters of document models

```
USAGE
  $ kubun graphql schema -c <value>... [-o <value>]

FLAGS
  -c, --cluster=<value>...  (required) path of the JSON file of the cluster
  -o, --output=<value>      output file for the GraphQL schema

DESCRIPTION
  Create a GraphQL schema from clusters of document models
```

## `kubun help [COMMAND]`

Display help for kubun.

```
USAGE
  $ kubun help [COMMAND...] [-n]

ARGUMENTS
  [COMMAND...]  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for kubun.
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/6.2.49/src/commands/help.ts)_

## `kubun mcp`

Start an MCP server for Kubun

```
USAGE
  $ kubun mcp [-c <value> | -d <value>] [-k <value>]

FLAGS
  -c, --connect=<value>     URL of an existing Kubun HTTP server to connect to
  -d, --db=<value>          SQLite database path or PostgreSQL URL
  -k, --privateKey=<value>  [env: KUBUN_PRIVATE_KEY] base64-encoded private key

DESCRIPTION
  Start an MCP server for Kubun
```

## `kubun model cluster`

Create a documents cluster model

```
USAGE
  $ kubun model cluster -m <value>... [-o <value>]

FLAGS
  -m, --model=<value>...  (required) document model as JSON string
  -o, --output=<value>    output file for the cluster

DESCRIPTION
  Create a documents cluster model
```

## `kubun model create NAME SCHEMA`

Create a document model

```
USAGE
  $ kubun model create NAME SCHEMA [-b default|interface|unique] [-c] [-o <value>] [-u <value>...]

ARGUMENTS
  NAME    document model name
  SCHEMA  document schema as JSON string

FLAGS
  -b, --behavior=<option>       [default: default] behavior of the document
                                <options: default|interface|unique>
  -c, --cluster                 create a cluster model instead of a document model
  -o, --output=<value>          output file
  -u, --uniqueField=<value>...  unique field of the document when behavior is set to "unique"

DESCRIPTION
  Create a document model
```

## `kubun serve`

Start a local Kubun server

```
USAGE
  $ kubun serve [-a <value>] [--autoAcceptPeers <value> --p2p] [--db <value>] [-l
    trace|debug|info|warning|error|fatal] [-p <value>] [-k <value> | --id <value>]

FLAGS
  -a, --allowedOrigin=<value>    [default: *, env: KUBUN_ALLOWED_ORIGIN] allowed HTTP origin
  -k, --privateKey=<value>       [env: KUBUN_PRIVATE_KEY] base64-encoded private key
  -l, --logLevel=<option>        [default: warning] log level
                                 <options: trace|debug|info|warning|error|fatal>
  -p, --port=<value>             port to listen on
      --autoAcceptPeers=<value>  comma-separated DIDs to auto-accept for peer join flows
      --db=<value>               path to the local SQLite database
      --id=<value>               server ID
      --p2p                      enable P2P mode with sync and graph protocols over HTTP

DESCRIPTION
  Start a local Kubun server
```
<!-- commandsstop -->
