> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nika.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Server surfaces

> Separate the resident scheduler, local model endpoint and preview workflow HTTP service.

export const ProjectContract = () => <>
    <Info>
      <strong>Live project control plane.</strong> The released engine
      discovers <code>nika.yaml</code> from the working directory toward its
      ancestors. The file is optional when built-in defaults are enough. Its
      project-shape grammar is closed: <code>nika</code> ·
      <code>ceiling</code> · <code>arm</code> · <code>traces</code> ·
      <code>registry</code>.
    </Info>
    <Warning>
      <strong>Current released reader limit.</strong> Direct workflow operations
      accept the <code>traces</code> and <code>registry</code> project-policy
      rungs. The cadence path behind <code>nika arm</code> and
      <code>nika serve</code> currently accepts only <code>nika</code>, optional
      <code>ceiling</code> and <code>arm</code>. Keep those profiles separate
      until the engine readers converge.
    </Warning>
  </>;

export const RemoteContract = () => <Warning>
    <strong>Preview surface.</strong> The root package types the intended
    workflow HTTP and SSE API. The reference engine does not ship a compatible
    workflow service today. Do not point it at the stable resident firer or
    <code>nika model serve</code>.
  </Warning>;

export const LocalContract = () => <Tip>
    <strong>Live surface.</strong> <code>@supernovae-st/nika-client/local</code>
    drives the released <code>nika</code> binary through its versioned machine
    contracts. It is the production path today.
  </Tip>;

Three surfaces can sound like a server. They do different jobs and accept
different clients.

## Truth table

| Surface                    | Job                                                                | SDK relationship                |
| -------------------------- | ------------------------------------------------------------------ | ------------------------------- |
| `nika serve`               | Fires armed local workflows from the `nika.yaml` project clock     | Stable, not an HTTP listener    |
| `nika model serve`         | Hosts a local model behind an OpenAI-compatible inference endpoint | A model provider for the engine |
| Intended workflow HTTP API | Jobs, workflows, SSE, artifacts and webhooks                       | Root `Nika` client, preview     |

<ProjectContract />

The resident firer and local model endpoint ship in the released engine. The
workflow HTTP API does not. Similar names do not make them compatible
protocols.

## Local application path

<LocalContract />

```ts theme={"system"}
import { LocalNika } from '@supernovae-st/nika-client/local'

const nika = new LocalNika({ cwd: process.cwd() })
const result = await nika.runToEnd('workflow.nika.yaml')
```

This path requires no daemon.

## Local model path

```sh theme={"system"}
nika model serve --model Qwen/Qwen3-0.6B-GGUF
```

The engine calls that inference endpoint as a provider. Application code does
not submit workflow jobs to it.

## Remote workflow path

<RemoteContract />

<div className="sdk-flight sdk-flight-compact">
  <span>NAME COLLISION · THREE DIFFERENT BOUNDARIES</span>

  <pre tabIndex={0}>
    {`nika.yaml arm[] ── nika serve ───────── local workflow runs  [ LIVE ]

        engine ─────────── nika model serve ──── local inference      [ LIVE ]

        application ───── Nika client ────────── workflow HTTP API    [ PREVIEW ]`}
  </pre>
</div>

## Continue

<CardGroup cols={2}>
  <Card title="Remote client" icon="satellite-dish" href="/sdk/remote/client">
    Explore the intended application boundary.
  </Card>

  <Card title="Local models" icon="microchip" href="/guides/local-models">
    Run inference on your own machine.
  </Card>

  <Card title="LocalNika" icon="terminal" href="/sdk/local/client">
    Use the released application seam today.
  </Card>

  <Card title="ARM and servers" icon="server" href="/reference/arm">
    Read the stable deployment reference.
  </Card>

  <Card title="Resident server" icon="clock" href="/sdk/operations/resident-server">
    Operate the project clock on a container, VM or bare server.
  </Card>

  <Card title="Server runbook" icon="clipboard-check" href="/sdk/operations/server-runbook">
    Supervise and probe the foreground process in production.
  </Card>

  <Card title="Deployment topologies" icon="sitemap" href="/sdk/operations/deployment-topologies">
    Choose a boundary by the job it owns.
  </Card>
</CardGroup>
