Open Source · Apache 2.0 · Go

Sahara Agent Harness

The agent runtime behind the Scitrera Platform

A generic, embeddable Go agent runtime: a native tool-calling turn loop with pluggable seams for transport, memory, tool catalog, and tool gating.

A Harness, Not a Framework

Modern models can plan, but they need a reliable loop to act in. Sahara provides that loop and gets out of the way. Every integration point is an interface with a simple default, so the same agent runs on a laptop against a local model or as a multi-tenant worker inside the Scitrera Platform.

Native Tool-Calling Loop

Bounded tool iterations, streaming output, cancellation, context compaction, and token-aware overflow recovery for long-running work.

Pluggable Seams

Transport, memory, tool catalog, tool approval, session replay, subagent execution, and goals are interfaces with simple defaults you can swap.

Run It Anywhere

Terminal UI, browser UI, stdin CLI, ACP agent over stdio, or a headless worker over Aether that several frontends can drive at once.

Bring Your Own Model

Talks to any OpenAI-compatible endpoint (Ollama, vLLM, OpenAI, or your own gateway), with multi-model configuration and reasoning-effort control.

Subagents & Durable Goals

In-process subagents that can become real Aether tasks on remote executors, plus durable goals with bounded continuation and token budgets.

Skills, MCP & Observability

Filesystem skills and slash commands, an MCP client, OpenTelemetry spans, and a branch-aware execution ledger for audit and replay.

Swap Any Seam

The core ships with file-backed and in-memory reference implementations and no external dependencies. Replace a seam when your application needs something more.

SeamInterface
Transportchannel
Memoryturn.MemoryService
Tool catalogcatalog.Provider
Tool approvalhooks
Subagent executionsubagent.TaskBackend
Goalsgoal.Service

Run It Locally

Point the reference CLI at any OpenAI-compatible endpoint. It opens the terminal UI by default; pass --web for the browser UI or --acp to run as an editor agent.

agent-harness-go
export SAHARA_LLM_BASE_URL=http://localhost:11434/v1
export SAHARA_LLM_MODEL=llama3.1
go run ./cmd/agent-harness --workspace ./workspace

# or: a headless worker over Aether,
# driven by any number of frontends
agent-harness --serve --aether 127.0.0.1:50051
agent-harness --tui   --aether 127.0.0.1:50051

From Harness to Platform

Sahara ships in two layers. Use the core on its own, or get the full multi-tenant runtime through the Scitrera Platform.

Apache-2.0

Sahara Core

  • Standalone Go agent runtime and reference CLI
  • TUI, web, CLI, ACP, and headless worker modes
  • Filesystem skills, slash commands, and MCP client
  • Embeddable in your own Go services
scitrera/agent-harness-go
AGPL-3.0

Platform Sahara

  • Durable execution with Aether tasks and work profiles
  • Sandboxed Python and TypeScript code execution
  • MemoryLayer-backed memory, skills, and tool catalogs
  • Tenant-scoped model routing through SparkRoute
scitrera/platform-backend

Both layers speak the open ecosystem messaging spec, so frontends, tools, and agents built in Python, TypeScript, or Go share one message and tool-call contract.

Build your agents on Sahara.

Start with the open-source harness on its own, or run it as part of the full Scitrera Platform.