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 agent runtime 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 extensions add tools 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 on Plan: ship dark mode. Two subagents, Theme toggle and Snapshot key screens, have finished, and the agent is running npm run test:contrast before it calls the work done.

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

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

The DotCraft phone app asking Run this command? npm run test:contrast in the orbit project, with Allow once, Allow for session and Reject.

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 "Which colors in src/components are still hard-coded?": the answer lists the hard-coded colors left in Card.css and Chart.css and notes that Button.css already uses theme tokens.

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

Build it into your product

Program.cs opening a thread with ISessionService and streaming the agent's reply to Check contrast in dark mode.

Harness puts 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();

Already have an app? The SDKs make it 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);

Harness guide · .NET extensions · SDK quickstart · App Binding · Desktop extensions

More from DotCraft

Satellite asking for access to run npm run test:contrast, the Oratorio board with Chart labels fail contrast in progress, connected chat bots, and three avatars.

  • Satellite: let your agent work on another Windows PC. The person sharing it decides how much it can reach and can pause sharing at any time.
  • Oratorio: your project board, built into Desktop. Local tasks and GitHub or GitLab issues and pull requests land on one board; hand a card to the agent and review the result.
  • Chat bots: put DotCraft in the group chat so teammates can ask about the project without opening Desktop. Works with Feishu, QQ, Telegram, WeCom and WeChat.
  • Avatar: the characters behind Desktop's pet and Agent Profiles, as React components for your own app.

Contributing

Start with CONTRIBUTING.md.

Credits

DotCraft is inspired by and thankful 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