Skip to main content

Documentation Index

Fetch the complete documentation index at: https://arkor-92aeef0e-eng-736.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The arkor package exposes the TypeScript surface that the CLI and Studio sit on top of. Everything you need for a typical project lives in three primitives plus their typed inputs.

Minimal example

// src/arkor/trainer.ts
import { createTrainer } from "arkor";

export const trainer = createTrainer({
  name: "support-bot-v1",
  model: "unsloth/gemma-4-E4B-it",
  dataset: { type: "huggingface", name: "arkorlab/triage-demo" },
  lora: { r: 16, alpha: 16 },
  maxSteps: 100,
});
// src/arkor/index.ts
import { createArkor } from "arkor";
import { trainer } from "./trainer";

export const arkor = createArkor({ trainer });
That is the whole shape arkor dev and arkor start discover.

Main API

SymbolPage
createArkor(input)Project manifest. Wraps a Trainer so the CLI / Studio can find it.
createTrainer(input)The fine-tuning run definition: model, dataset, LoRA, hyperparameters, callbacks.
Trainer.start / wait / cancelRun-control methods. wait() is where lifecycle callbacks fire.
TrainerCallbacksThe five lifecycle callbacks (onStarted, onLog, onCheckpoint, onCompleted, onFailed).
InferArgs / inferInference inside onCheckpoint. Returns a raw Response.
DatasetSourceHuggingFace dataset name or blob URL.

Auxiliary helpers (advanced)

These are exported for code that drives Arkor outside the CLI flow, e.g. running training from your own server or a script. Most projects do not need them.
SymbolSourcePurpose
runTrainer(file?)core/runner.tsWhat arkor start calls under the hood. Resolves the entry, picks the trainer (preferring arkor, then trainer, then default export), runs start() + wait().
readCredentials() / writeCredentials() / ensureCredentials()core/credentials.tsRead or write ~/.arkor/credentials.json. ensureCredentials returns the existing record if present and bootstraps a fresh anonymous identity (calls requestAnonymousToken and persists it) when no credentials exist. Throws on a few paths: the credentials file exists but is unreadable / not valid JSON (readCredentials does a bare JSON.parse), or the anonymous-token bootstrap itself fails (network / token-endpoint error). The file is assumed to be SDK-written.
requestAnonymousToken(baseUrl, kind?)core/credentials.tsMint a fresh anonymous token directly. The CLI uses this on arkor login --anonymous and on first arkor dev.
credentialsPath()core/credentials.tsAbsolute path to ~/.arkor/credentials.json.
readState(cwd?) / writeState(state, cwd?) / statePath(cwd?)core/state.tsRead or write .arkor/state.json (project routing).
isArkor(value)core/arkor.tsType guard for the manifest.
CloudApiClientcore/client.tsTyped client for the cloud API. Exposes listDeployments / createDeployment / createDeploymentKey etc. for managing *.arkor.app inference URLs. See Deployments for the full method list and examples.
CloudApiErrorcore/client.tsError class thrown by CloudApiClient on non-2xx responses. Carries .status and the structured { error } body verbatim — branch on instanceof CloudApiError && err.status === 409 to handle slug collisions, etc.
defaultArkorCloudApiUrl(credentials?)core/credentials.tsResolve the cloud API base URL the SDK should target. Priority: ARKOR_CLOUD_API_URL env var → the URL stored on the loaded credentials (anonymous credentials carry it from signup; OAuth credentials carry it since arkor login was updated to persist the auth-time URL) → the production endpoint. Use this when constructing a CloudApiClient from readCredentials() / ensureCredentials() so a script keeps targeting the same staging / self-hosted control plane the user authenticated against.

Types

Public type exports (from arkor): Arkor, ArkorInput, ArkorProjectState, BlobDatasetSource, DatasetSource, HuggingfaceDatasetSource, JobStatus, LoraConfig, Trainer, TrainerCallbacks, TrainerInput, TrainingJob, TrainingResult, plus Auth0Credentials (the OAuth credentials type, named after the underlying Auth0-based provider), AnonymousCredentials, and Credentials for the auth helpers. Deployment-related type-only exports (see Deployments): CloudApiClientOptions, DeploymentTarget, DeploymentAuthMode, DeploymentRunRetentionMode, DeploymentDto, DeploymentKeyDto, DeploymentScope, CreateDeploymentInput, UpdateDeploymentInput, CreateDeploymentKeyInput, CreateDeploymentKeyResult. The runtime CloudApiClient and CloudApiError classes are listed under Utilities above — they’re value exports, not types, so import them as values. TrainingLogContext, CheckpointContext, InferArgs are not exported by name today; they are documented in the callbacks and infer pages so you can mirror them inline if you need typed callback parameters.

Not in the public surface

These exist in the source tree but are intentionally not exported from arkor. Treat them as internal:
  • SDK_VERSION: used by the CLI and Studio server for header / log purposes. Do not import via deep paths; the export contract may change.
  • The CLI command runners (runBuild, runStart, runDev, runInit, runLogin, runLogout, runWhoami): they live under src/cli/commands/ and are CLI-private. If you need to drive a training run, use runTrainer (above) or call trainer.start() / trainer.wait() directly.

See also