CLI Agent
Objective: run a Harness Kernel agent from a Node CLI.
import "dotenv/config";
import { resolve } from "node:path";import { createHarnessSessionStore } from "@harness-kernel/core/runner";import { ConsoleLogSink } from "@harness-kernel/core/runner/logging";import { OpenAIProvider } from "@harness-kernel/provider-openai";import { LocalSandbox } from "@harness-kernel/sandbox-local";import { FileSessionStorage } from "@harness-kernel/storage-file";import { agent } from "./agent.js";
const prompt = process.argv.slice(2).join(" ").trim() || "Summarize this project.";for (const mode of agent.modes) mode.toolApproval = "ask";
const store = await createHarnessSessionStore({ agent: { definition: agent }, providers: [new OpenAIProvider()], defaultModel: process.env.HARNESS_KERNEL_MODEL ?? "openai/gpt-5.1", storage: new FileSessionStorage(), sandbox: new LocalSandbox({ workDir: resolve(process.cwd()) }), logging: { sinks: [new ConsoleLogSink({ level: "info" })], },});
try { const result = await store.send("cli", prompt); console.log(result.answer);} finally { await store.close();}The repo includes this pattern under examples/cli-harness.
Boundary note: the CLI owns process arguments, environment variables, provider registration, storage, sandbox, and logs.
API: Session Store.