People of Hark: We’ve shipped Hark 1.0 with Hark Durable. Go make them yours.
Hark PRO

There are many agent harnesses
but this one is yours

Hark is a minimal agent harness.
Adapt Hark to your workflows, not the other way around.

curl -fsSL https://harkpro.dev/install.sh | sh
$ hark
H ~/project · /model to switch

› add a /deploy command that ships to staging
● write  .hark/extensions/deploy.ts
● run    /reload
✓ /deploy is ready

Why Hark?

› make the hero text on my website bigger
● read  index.html
● edit  styles.css
✓ Done. Reload to see it.

Hark is a minimal agent harness. Adapt Hark to your workflows, not the other way around. Customize Hark with extensions, skills, prompt templates, and themes. Bundle them as Hark packages and share via npm or git.

Hark ships with powerful defaults but skips features like sub-agents and plan mode. Ask Hark to build what you want, or install a package that does it your way.

Four modes: interactive, print/JSON, RPC, and SDK. See OpenClaw for a real-world integration.

Read the documentation

Change the harness, not your workflow

› add a /todo command and a status bar
● write  .hark/extensions/todo.ts
› /reload
✓ extension reloaded

Hark isn’t a sealed product. If you need a command, tool, provider, workflow, or UI tweak, just ask Hark to build it. It will customize itself on the fly.

Have Hark manipulate itself in place, hit /reload, and keep going. If you think others will find what you built useful, share it!

15+ providers, hundreds of models

/model  Ctrl+L
› anthropic
  openai
  google
  openrouter
  ollama
Ctrl+P cycles your favorites

Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi For Coding, MiniMax, NVIDIA, OpenRouter, Ollama, and more. Authenticate via API keys or OAuth.

Switch models mid-session with /model or Ctrl+L. Cycle through your favorites with Ctrl+P.

Add custom providers and models via models.json or extensions.

Tree-structured, shareable history

/tree
├─ fix the failing test
│  ├─ try mocking the clock
│  └─ ● use fake timers
└─ refactor the parser [bookmark]

Sessions are stored as trees. Use /tree to navigate to any previous point and continue from there. All branches live in a single file. Filter by message type, label entries as bookmarks.

Export to HTML with /export, or upload to a GitHub gist with /share and get a shareable URL that renders it. Example session.

Context engineering

loaded  ~/.hark/agent/AGENTS.md
loaded  ./AGENTS.md
loaded  ./.hark/SYSTEM.md
skills  available, loaded on demand
context compaction near the limit

Hark’s minimal system prompt and extensibility let you do actual context engineering. Control what goes into the context window and how it’s managed.

AGENTS.md: Project instructions loaded at startup from ~/.hark/agent/, parent directories, and the current directory.

SYSTEM.md: Replace or append to the default system prompt per-project.

Compaction: Auto-summarizes older messages when approaching the context limit. Fully customizable via extensions: implement topic-based compaction, code-aware summaries, or use different summarization models.

Skills: Capability packages with instructions and tools, loaded on-demand. Progressive disclosure without busting the prompt cache. See skills.

Prompt templates: Reusable prompts as Markdown files. Type /name to expand. See prompt templates.

Dynamic context: Extensions can inject messages before each turn, filter the message history, implement RAG, or build long-term memory.

Steer or follow up

agent is working…
› use the v2 API instead      Enter → steer
› then update the docs        Alt+Enter → follow-up

Submit messages while the agent works. Enter sends a steering message (delivered after current tool, interrupts remaining tools). Alt+Enter sends a follow-up (waits until the agent finishes).

Four modes

$ hark -p "write a script that tars my logs"
#!/usr/bin/env bash
tar czf logs.tgz /var/log/app
$ hark --mode json "query"

Interactive: The full TUI experience.

Print/JSON: hark -p "query" for scripts, --mode json for event streams.

RPC: JSON protocol over stdin/stdout for non-Node integrations. See docs/rpc.md.

SDK: Embed Hark in your apps. See OpenClaw for a real-world example.

Primitives, not features

$ hark install npm:@foo/hark-tools
✓ installed
$ hark install git:github.com/badlogic/pi-doom
✓ installed

Features that other agents bake in, you can build yourself. Extensions are TypeScript modules with access to tools, commands, keyboard shortcuts, events, and the full TUI.

Sub-agents, plan mode, permission gates, path protection, SSH execution, sandboxing, MCP integrations (still supported alongside built-in MCP), custom editors, status bars, overlays.

Don’t want to build it? Ask Hark to build it for you. Or install a package that does it your way. See the 50+ examples.

Bundle extensions, skills, prompts, and themes as packages. Install from npm or git:

$ hark install npm:@foo/hark-tools
$ hark install git:github.com/badlogic/pi-doom
Browse packages

What we didn’t build

Hark is aggressively extensible so it doesn’t have to dictate your workflow. Features that other tools bake in can be built with extensions, skills, or installed from third-party Hark packages. This keeps the core minimal while letting you shape Hark to fit how you work.

Read the blog post

No MCP Now with MCP+Codemode

MCP is built in, and Codemode lets agents compose tool calls in a JavaScript sandbox. MCP extensions are still supported too. Why we changed our minds

No sub-agents

Spawn Hark instances via tmux, or build your own with extensions, or install a package that does it your way.

No permission popups

Run in a container, or build your own confirmation flow with extensions inline with your environment and security requirements.

No plan mode

Write plans to files, or build it with extensions, or install a package.

No built-in to-dos

Use a TODO.md file, or build your own with extensions.

No background bash

Use tmux. Full observability, direct interaction.

Hark

Hark is an extensible AI agent that works from your terminal. Give it a goal and a working folder, and it can inspect files, run commands, edit content, and work through multi-step tasks.

Use Hark for software development, research notes, writing projects, data files, or hobby work. You can use Hark as is, prompt it to adapt itself to your workflow, or build other applications powered by Hark using the SDK.

Start using Hark

New to Hark? Follow the Quickstart to install Hark, connect a model, and complete your first task.

If Hark is already installed, choose what you want to do:

Customize Hark

Hark can reuse prompts, load specialized instructions, add executable integrations, change its terminal interface, connect model services, and distribute these resources as packages. Use the Quickstart customization chooser to select the smallest mechanism that meets your need.

Automate or embed Hark

Find reference and setup information

Use the reference pages to look up CLI options, settings, providers, keybindings, and environment variables.

For platform-specific help, see Terminal Setup, Windows, tmux, Termux on Android, or Containerization.

Work safely

Hark’s tools and extensions run with the permissions of the Hark process. Project trust controls which project resources Hark loads, but it does not sandbox tool calls. Review Security before using untrusted files, repositories, extensions, or unattended automation.

Package Catalog

Extensions, skills, prompt templates, and themes published to npm. Install with hark install npm:<package>. See the package docs for details.

Recently published

All packages