ARK for software

An AI team in your repository.

Point ARK at a repo and ask. Agents read and search the code, look up the docs, and propose changes you approve file by file.

Hand over the digging.

Reading unfamiliar code, chasing a change through a codebase, catching up on docs. Agents do the legwork; you review.

  • Reader

    Explain how auth works in this repo, with a diagram.

    Diagram and notes
  • Reader

    What changed in the payments API since the version we pin?

    A list, with links
  • Engineer

    Rename Customer to Account everywhere, and ask before each file.

    12 files, each approved
  • Reviewer

    Read src/billing and list what breaks if we drop the old invoice format.

    5 risks, with lines

Not another chat sidebar.

Agents with roles, tools and limits, on a canvas you can watch.

  • It works in the repo. Agents list, read, search and write files in the project folder, and nothing outside it.
  • Several agents at once. Each with its own role, instructions and model. Watch who hands work to whom.
  • Every write asks. See the start of a change before it is saved.
  • Your model. Claude Code or Codex on your subscription, the Anthropic or OpenAI API, or Ollama.
A developer working on a laptop at a quiet desk

Engineer wants to change a file

src/import/dates.rs

+ fn parse_iso_week(s: &str) -> Option<NaiveDate> {

Build your own agents.

ARK Desktop runs on ARK Core, an open source agent runtime in Rust. Bring your tools and prompts; the rest is done.

  • The loop. Context budget, model routing, retries, sessions, cancel and steering.
  • Tools with limits. Every action has a risk tier. Anything that changes state asks first.
  • Teams. Delegation, messages and a scheduler that knows each model's capacity.
  • Front-ends. The same app in a terminal or a window. MIT or Apache-2.0.
src/main.rs
use ark_sdk::prelude::*;

async fn run() -> Result<(), ArkError> {
    let ark = Ark::builder()
        .store_root("./workspace")
        .tool(Arc::new(Weather))  // your tools
        .profile(AgentProfile::builder()
            .instructions("You are a concise travel assistant.")
            .build())
        .provider(ark_model::from_env_arc()?)  // Claude, OpenAI, Ollama
        .build()?;
    let project = ark.create_project("trip", "weekend planning")?;
    let outcome = ark.ask(&project.id, "weather in Lisbon today?").await?;
    println!("{}", outcome.answer);
    Ok(())
}

Questions

ARK Desktop is a free Mac app: a team of AI agents that work in a folder you choose, and ask before they change anything. It runs on ARK Core, an open source agent runtime in Rust.

Not yet. Agents list, read, search and write files in the project folder, search the web and draw diagrams. They do not run commands.

Claude Code or Codex on the subscription you already have, the Anthropic or OpenAI API, or a local model through Ollama. Each agent can use a different one.

Yes. Settings › Tool servers adds MCP servers while the app runs. In ARK Core, a tool is one Adapter.

Yes, under MIT or Apache-2.0, on GitHub. Releases are git tags; pin one in Cargo.toml.

Ready when you are.

Start with one task. Your team takes it from there.