Skip to content
DotHarnessPublic

About

The agent harness for .NET: embeddable, extensible, remotely controllable and ready to use.

Topics

Resources

Contributing

Stars

402 stars

Watchers

9 watching

Forks

Repository files navigation

DotCraft is an open-source AI agent that runs on your own machine. Use the desktop app to code and get work done, keep up with it from your phone, or build the same agent into your own apps and extend it with plugins.

Why DotCraft

  • One agent, many doors. Desktop, the CLI, your IDE, your phone and chat bots share one workspace, so a task started in one can be picked up in another. Connect Desktop to DotCraft on a server over SSH, or let the agent work on another computer through Satellite.
  • Yours to build on. Embed the runtime behind DotCraft Desktop in your .NET app, or connect an existing product through the SDKs and App Binding. .NET plugins add tools, commands and lifecycle logic, and the agent can write one and swap it in while the host keeps running. React plugins reshape Desktop's interface.
  • Your deployment, your costs. Run it on your machine or your own server, with any compatible model provider or your ChatGPT subscription. Byte-stable prompt prefixes let providers reuse their cache.
  • One set of keys for the team. One machine holds the API keys and sign-ins; DotCraft on everyone else's machine calls models through it, without storing keys or reaching providers directly.

Quick start

Desktop

  1. Download the installer for Windows, macOS or Linux from Releases.
  2. Open a project folder as a workspace.
  3. Connect a model: any OpenAI-compatible or Anthropic-compatible provider with an API key, or sign in with your ChatGPT subscription.

CLI

# macOS / Linux
curl -fsSL https://www.dotcraft.net/install.sh | bash
# Windows PowerShell
irm https://www.dotcraft.net/install.ps1 | iex

See Getting started for the full walkthrough.

Desktop

DotCraft Desktop: the 'Ship dark mode' plan with two steps done, and the Subagents tab with two subagents working on the next steps.

A workbench where the agent plans in your project, hands parts to subagents, and checks the result before it says done.

Get it: Download for Windows, macOS or Linux.

Four Desktop features in turn: the in-app browser checking your app's settings page, Computer Use working in another Windows app, Agent Builder setting up a new agent, and the pet finding Dragon wings to wear.

Ready out of the box

  • Plan drafts the steps first and waits for your go-ahead.
  • Subagents split a task and work on the parts side by side.
  • In-app Browser opens your app so the agent can check its own work, and you can point at anything to change.
  • Computer Use lets the agent operate the Windows apps you allow.
  • Agent Builder turns a description into a reusable agent.
  • Automations, Goals, Dreams and Dynamic Workflows keep work moving when you are away.
  • Your pet lives on the composer and finds things to wear while agents work.

Desktop guide · Subagents · Agent profiles · Automations

Mobile

DotCraft on an Android phone asking to run npm run test:contrast, with Allow once.

Keep up with your agent from your phone while it works on your computer. See what's running, answer approvals and questions, add a message or stop a chat, and start new chats in any project.

Get it: download the Android app, then scan the code under Settings → Connections → Phones in Desktop.

Phone app guide · Access from anywhere

CLI

A terminal running dotcraft exec: the agent answers with the hard-coded colors in Card.css and Chart.css.

Run a task with one command and get the answer in your terminal, on your laptop, a server or in CI.

dotcraft exec "Which colors in src/components are still hard-coded?"

Entry points · IDEs

Satellite

Another PC's screen with the Satellite capsule at the top: Ann is requesting access to run npm run test:contrast, with Deny and Allow once.

Let your agent work on another Windows PC. The person sharing it chooses full access or one folder, sees every request at the top of the screen, and can pause sharing at any time.

Get it: in Desktop, open Settings → Connections → Satellites → Invite and send the link. The other PC downloads DotCraft Satellite from that page.

Satellite guide

Oratorio

The Oratorio board: one issue in progress with the agent working on it, one pull request in review with checks passing.

Your project board, built into Desktop. Local tasks, GitHub issues and pull requests, and GitLab issues and merge requests land on one board; hand a card to the agent, follow the run, review the result.

Get it: built in. Select Oratorio in the Desktop sidebar.

Oratorio guide · Workflow

Chat bots

The Channels page in Desktop with Feishu, QQ, Telegram and WeCom connected.

Put DotCraft in the group chat so teammates can ask about the project without opening Desktop. Feishu / Lark, QQ, Telegram, WeCom and WeChat connect, and their conversations share the workspace with every other entry point.

Get it: built in. Open Channels in Desktop, pick a platform and fill in its credentials.

Channels & bots

Harness

Program.cs creating a thread with ISessionService and streaming the agent's reply as it is written.

The whole agent runtime behind DotCraft Desktop, inside your own .NET app: sessions, tools, approvals and model providers, on your host's lifecycle.

dotnet add package DotCraft.Harness
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddDotCraftHarness(appConfig, options =>
    options.WorkspacePath = workspacePath);

using var host = builder.Build();
await host.StartAsync();

Harness guide · .NET plugins

SDKs

app.ts starting a thread with the TypeScript SDK and streaming the agent's reply as it is written.

Make your own app a DotCraft client: connect to a workspace, start a thread and run a turn, from TypeScript or .NET.

npm install @dotcraft/sdk        # or: dotnet add package DotCraft.Sdk
import { DotCraft } from "@dotcraft/sdk";

const dotcraft = await DotCraft.local({ workspacePath: "/path/to/workspace" });
const thread = await dotcraft.threads.start({ userId: "me" });
const result = await thread.run("Check contrast in dark mode.");
console.log(result.text);

SDK quickstart · App Binding · Desktop plugins

Avatar

A crowd of DotCraft robots in different outfits, with one in front wearing a cloud dragon and star glasses.

The robot you see in Desktop, as a React component. It moves with the agent's state, 160+ collectible items dress it up, and the same name always draws the same avatar.

npm install @dotcraft/avatar

Avatar package

Contributing

Start with CONTRIBUTING.md.

Credits

Inspired by nanobot, codex and agent-framework.

Special thanks to:

License

Apache License 2.0

About

The agent harness for .NET: embeddable, extensible, remotely controllable and ready to use.

Topics

Resources

Contributing

Stars

402 stars

Watchers

9 watching

Forks

Releases

Packages

Contributors

Languages