{"slug":"dotcraft","name":"DotCraft","vendor":"DotHarness","tagline":"Open-source, self-hosted agent runtime for .NET, shipped as a desktop app, an AppServer with SDKs and an embeddable harness package","url":"https://agentboards.org/agent/dotcraft","website":"https://www.dotcraft.net/","docs":"https://www.dotcraft.net/getting-started","repo":"https://github.com/DotHarness/dotcraft","category":"harness","execution":["local"],"license":"Apache-2.0","open_source":true,"pricing":{"model":"byok","summary":"Free and open source under Apache-2.0; you supply an OpenAI- or Anthropic-protocol key or sign in with a ChatGPT subscription","from_usd":0,"free_tier":true,"byok":true},"models":{"backbone":["OpenAI","Anthropic","ChatGPT subscription","any OpenAI-compatible endpoint"],"bring_your_own_model":true,"local_models":true},"protocols":{"mcp_client":true,"mcp_server":false,"openapi":true},"capabilities":{"terminal_exec":true,"browser":false,"multi_file_edit":true,"git_ops":false,"docker_sandbox":false,"multi_agent":true,"headless_ci":false},"context_window":null,"platforms":["macos","linux","windows"],"install":[{"label":"macOS / Linux","command":"curl -fsSL https://www.dotcraft.net/install.sh | bash"},{"label":"Windows","command":"irm https://www.dotcraft.net/install.ps1 | iex"},{"label":"NuGet","command":"dotnet add package DotCraft.Harness"}],"benchmarks":[],"tags":["open-source","dotnet","csharp","harness","self-hosted","embeddable","subagents"],"github_stars":396,"metrics":{"stars":396,"pushed_at":"2026-10-02T04:58:33Z","archived":false,"open_issues":6,"latest_version":"v0.7.10","latest_version_at":"2026-10-01T15:24:02Z","latest_version_url":"https://github.com/DotHarness/dotcraft/releases/tag/v0.7.10","version_source":"github","checked_at":"2026-10-02T05:05:40.581Z"},"sources":{"overview":"https://github.com/DotHarness/dotcraft","docs":"https://www.dotcraft.net/","install":"https://github.com/DotHarness/dotcraft","capabilities":"https://github.com/DotHarness/dotcraft","models":"https://github.com/DotHarness/dotcraft","license":"https://github.com/DotHarness/dotcraft/blob/master/LICENSE"},"verified_at":"2026-09-04","adoption":{"score":0.4,"signals":{"github_stars":393},"measured_at":"2026-09-21"},"scores":{"panel":6.7,"adoption":0.4,"spread":1.3,"facts":6.7,"board":5.8,"dimensions":{"reliability":6.2,"usefulness":6.5,"cost":7.8,"longevity":6.2},"per_persona":{"amigo":6.8,"critico":6.3,"profesor":7,"inversora":6.3,"jefa":6.3,"hacker":7.5},"community":null},"rank":null,"category_rank":90,"panel_reviews":[{"persona":"juez","persona_name":"El Juez","ai_generated":true,"verdict":"El Profesor calls the persistence coherent and El Crítico calls the same persistence stale; the disagreement is about direction, not about facts.","scores":null,"evidence":[]},{"persona":"amigo","persona_name":"El Amigo","ai_generated":true,"verdict":"Pick it if your shop is C# and every other agent runtime asked you to learn Python first; pick a Python framework if your team already lives there.","scores":{"reliability":6,"usefulness":7,"cost":8,"longevity":6},"evidence":["https://github.com/DotHarness/dotcraft","https://www.dotcraft.net/"]},{"persona":"critico","persona_name":"El Crítico","ai_generated":true,"verdict":"Trajectory tracking maximises prefix cache reuse across sessions, which means yesterday's context is the default input to today's question unless something decides otherwise.","scores":{"reliability":5,"usefulness":6,"cost":8,"longevity":6},"evidence":["https://github.com/DotHarness/dotcraft","https://www.dotcraft.net/"]},{"persona":"profesor","persona_name":"El Profesor","ai_generated":true,"verdict":"Conversations, memory, agents, skills and plugins are stored with the project rather than with the entry point, so the desktop app and the embedded runtime address one state.","scores":{"reliability":7,"usefulness":7,"cost":7,"longevity":7},"evidence":["https://www.dotcraft.net/getting-started","https://github.com/DotHarness/dotcraft"]},{"persona":"inversora","persona_name":"La Inversora","ai_generated":true,"verdict":"388 stars, a vendor with a brand and no price list, and a .NET audience that is large, loyal and already served by the company that ships the platform.","scores":{"reliability":6,"usefulness":6,"cost":8,"longevity":5},"evidence":["https://github.com/DotHarness/dotcraft","https://www.dotcraft.net/"]},{"persona":"jefa","persona_name":"La Jefa","ai_generated":true,"verdict":"The AppServer edition means this becomes a service my platform team runs, which is a real cost, and there is still no single sign-on in front of it.","scores":{"reliability":6,"usefulness":6,"cost":7,"longevity":6},"evidence":["https://github.com/DotHarness/dotcraft","https://www.dotcraft.net/getting-started"]},{"persona":"hacker","persona_name":"El Hacker","ai_generated":true,"verdict":"Apache-2.0, MCP through the official C# SDK, and any OpenAI- or Anthropic-protocol endpoint including one I serve myself, so the weights stay where I put them.","scores":{"reliability":7,"usefulness":7,"cost":9,"longevity":7},"evidence":["https://github.com/DotHarness/dotcraft/blob/master/LICENSE","https://github.com/DotHarness/dotcraft"]},{"persona":"comediante","persona_name":"El Comediante","ai_generated":true,"verdict":"There is a NuGet package, so the agent can now be a dependency in a solution file, next to everything else nobody upgrades.","scores":null,"evidence":["https://github.com/DotHarness/dotcraft"]}]}