Skip to content
nikcli
Docs
Documentation

Mobile · Terminals

Pseudo-terminals for the mobile app, including the connect endpoint the terminal view attaches to.

Playground

Send these requests to your own running server. Values stay in this browser.

Not connected
How this works

Start a server with nikcli serve --hostname 127.0.0.1 --port 4096. Requests go straight from this page to that address — the browser allows it because loopback counts as a secure origin, and the server allows it because nikcli-ai.dev is in its CORS allowlist.

To try things without touching your real sessions or config, start the server with NIKCLI_TEST_HOME pointed at a throwaway directory — see the guided tour.

Operations

6 endpoints, generated from the server's own OpenAPI document. Every path also accepts the directory and workspace query parameters that select which instance handles the request.

get /mobile/pty mobile.pty.list
post /mobile/pty mobile.pty.create
get /mobile/pty/{ptyID} mobile.pty.get
put /mobile/pty/{ptyID} mobile.pty.update
delete /mobile/pty/{ptyID} mobile.pty.remove
get /mobile/pty/{ptyID}/connect mobile.pty.connect
get /mobile/pty # mobile.pty.list
Parameters
Name In Type Required
directory query string optional
workspace query string optional
Responses
200 Success application/json
({
  id: string
  title: string
  command: string
  args: string[]
  cwd: string
  status: "running" | "exited"
  pid: 
    | number
    | "Infinity" | "-Infinity" | "NaN"
})[]
Example response from schema
[
  {
    "id": "",
    "title": "",
    "command": "",
    "args": [
      ""
    ],
    "cwd": "",
    "status": "running",
    "pid": 0
  }
]

Generated from the response schema — field values are placeholders, the shape is real.

SDK example
mobile.pty.list
ts
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"

const client = createNikcliClient()
await client.mobile.pty.list({
  ...
})
Try it
post /mobile/pty # mobile.pty.create
Parameters
Name In Type Required
directory query string optional
workspace query string optional
Request body · required · application/json
{
  command?: string | null
  args?: string[] | null
  cwd?: string | null
  title?: string | null
  env?: 
    | {
    [key: string]: string
  }
    | null
}
Responses
200 Pty application/json
{
  id: string
  title: string
  command: string
  args: string[]
  cwd: string
  status: "running" | "exited"
  pid: 
    | number
    | "Infinity" | "-Infinity" | "NaN"
}
Example response from schema
{
  "id": "",
  "title": "",
  "command": "",
  "args": [
    ""
  ],
  "cwd": "",
  "status": "running",
  "pid": 0
}

Generated from the response schema — field values are placeholders, the shape is real.

SDK example
mobile.pty.create
ts
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"

const client = createNikcliClient()
await client.mobile.pty.create({
  ...
})
Try it
get /mobile/pty/{ptyID} # mobile.pty.get
Parameters
Name In Type Required
ptyID path string required
directory query string optional
workspace query string optional
Responses
200 Pty application/json
{
  id: string
  title: string
  command: string
  args: string[]
  cwd: string
  status: "running" | "exited"
  pid: 
    | number
    | "Infinity" | "-Infinity" | "NaN"
}
Example response from schema
{
  "id": "",
  "title": "",
  "command": "",
  "args": [
    ""
  ],
  "cwd": "",
  "status": "running",
  "pid": 0
}

Generated from the response schema — field values are placeholders, the shape is real.

SDK example
mobile.pty.get
ts
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"

const client = createNikcliClient()
await client.mobile.pty.get({
  ...
})
Try it
put /mobile/pty/{ptyID} # mobile.pty.update
Parameters
Name In Type Required
ptyID path string required
directory query string optional
workspace query string optional
Request body · required · application/json
{
  title?: string | null
  size?: 
    | {
    rows: 
      | number
      | "Infinity" | "-Infinity" | "NaN"
    cols: 
      | number
      | "Infinity" | "-Infinity" | "NaN"
  }
    | null
}
Responses
200 Pty application/json
{
  id: string
  title: string
  command: string
  args: string[]
  cwd: string
  status: "running" | "exited"
  pid: 
    | number
    | "Infinity" | "-Infinity" | "NaN"
}
Example response from schema
{
  "id": "",
  "title": "",
  "command": "",
  "args": [
    ""
  ],
  "cwd": "",
  "status": "running",
  "pid": 0
}

Generated from the response schema — field values are placeholders, the shape is real.

SDK example
mobile.pty.update
ts
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"

const client = createNikcliClient()
await client.mobile.pty.update({
  ...
})
Try it
delete /mobile/pty/{ptyID} # mobile.pty.remove
Parameters
Name In Type Required
ptyID path string required
directory query string optional
workspace query string optional
Responses
200 Success application/json
boolean
Example response from schema
false

Generated from the response schema — field values are placeholders, the shape is real.

SDK example
mobile.pty.remove
ts
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"

const client = createNikcliClient()
await client.mobile.pty.remove({
  ...
})
Try it

This changes or removes server state, against whatever base URL is set above.

get /mobile/pty/{ptyID}/connect # mobile.pty.connect
Parameters
Name In Type Required
ptyID path string required
directory query string optional
workspace query string optional
Responses
200 WebSocket upgrade application/json
unknown
Example response from schema
null

Generated from the response schema — field values are placeholders, the shape is real.

SDK example
mobile.pty.connect
ts
import { createNikcliClient } from "@nikcli-ai/sdk/httpapi"

const client = createNikcliClient()
await client.mobile.pty.connect({
  ...
})
Try it

Schemas

The 1 schemas reachable from these endpoints. Each is shown one level deep; nested types link to their own entry below. Names ending in _2, _3 and so on are the OpenAPI emitter disambiguating same-named schemas declared by different HttpApi groups — they are distinct shapes, not duplicates.

Pty
{
  id: string
  title: string
  command: string
  args: string[]
  cwd: string
  status: "running" | "exited"
  pid: 
    | number
    | "Infinity" | "-Infinity" | "NaN"
}