Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

dtoolkit

dtoolkit

Open-source harness engineering toolkit for AI coding agents

License GitHub


The frontier isn't the model — it's the harness: loop, context, tools, hooks, memory, observability. dtoolkit is a family of composable products that make your coding agents smarter, faster, and observable.

Each product has one job, works standalone, and composes with the rest via a neutral ContextBlock[] contract. No vendor lock-in — works with Claude Code, OpenCode, Cursor, Codex, and any tool that speaks MCP or CLI.

Packages

Core

Package Version Description
@dtoolkit/core npm Shared types and Zod schemas (Adapter, ContextBlock, Fact, Entity, Tier)
@dtoolkit/sdk npm Typed HTTP clients for dtoolkit services (dbrain + dops + dproxy + dwork)
@dtoolkit/adapter-claude npm Adapter for Claude Code CLI
@dtoolkit/adapter-codex npm Adapter for Codex CLI
@dtoolkit/adapter-gemini npm Adapter for Gemini CLI
@dtoolkit/adapter-opencode npm Adapter for OpenCode CLI
@dtoolkit/codegraph-sdk npm Code intelligence SDK — fork of codegraph

Memory & Context

Package Version Description
@dtoolkit/dbrain npm Persistent memory server — SQLite + FTS5, MCP, REST API, federation, dashboard
@dtoolkit/dcontext npm Hooks for AI coding CLIs — injects dbrain context at session start, saves transcripts pre-compaction

Project Management

Package Version Description
@dtoolkit/dwork npm AI-native project manager — Markdown as source of truth, kanban dashboard, MCP, REST API

Multi-provider Transport

Package Version Description
@dtoolkit/dproxy npm Universal adapter for invoking models — CLI and REST API

Observability

Package Version Description
@dtoolkit/dops npm Agent observability — tokens, cost, tools, success rate, errors

Coming soon

Package Description
@dtoolkit/dcouncil Multi-agent debate for architecture decisions
@dtoolkit/dguard Pre-commit for agents — validate LLM output before applying
@dtoolkit/dpolicy Policy-as-code for the team harness
@dtoolkit/droute Model router (Haiku/Sonnet/Opus) + cost tracking
@dtoolkit/dpair Real-time pair-programming with a shared agent
@dtoolkit/dreplay Session browser for the team (privacy-aware)
@dtoolkit/dstream Daily digest — what each agent learned, decided, or blocked today
@dtoolkit/dforge Internal marketplace for skills, hooks, and slash commands

Architecture

graph TB
 subgraph Agent["Your Agent"]
 CC["Claude Code / OpenCode / Gemini / ..."]
 end
 CC -- "ContextBlock[]" --> dcontext
 CC -- "ContextBlock[]" --> dproxy
 CC -- "MCP / REST" --> personal
 CC -- "MCP / REST" --> dwork
 subgraph Harness["dtoolkit harness"]
 dcontext["dcontext<br/><small>hooks + briefing</small>"]
 dproxy["dproxy<br/><small>transport</small>"]
 end
 subgraph Memory["Memory layer"]
 personal["dbrain <small>(personal)</small><br/><small>identity + memory + knowledge</small>"]
 shared["dbrain <small>(shared / team)</small><br/><small>team knowledge + API keys</small>"]
 end
 subgraph Projects["Project management"]
 dwork["dwork<br/><small>tasks + docs + kanban</small>"]
 end
 dcontext -- "search / save" --> personal
 personal -- "federated recall<br/>share facts" --> shared
 subgraph Adapters["Provider adapters"]
 ac["adapter-claude"]
 ax["adapter-codex"]
 ag["adapter-gemini"]
 ao["adapter-opencode"]
 end
 dproxy --> ac & ax & ag & ao
 style Agent fill:#1a1a2e,color:#fff,stroke:#16213e
 style Harness fill:#0f3460,color:#fff,stroke:#16213e
 style Memory fill:#533483,color:#fff,stroke:#16213e
 style Projects fill:#0f3460,color:#fff,stroke:#16213e
 style Adapters fill:#1a1a2e,color:#fff,stroke:#16213e
 style personal fill:#e94560,color:#fff,stroke:#533483
 style shared fill:#7c3aed,color:#fff,stroke:#533483
 style dwork fill:#e94560,color:#fff,stroke:#533483
Loading

Design principle: one layer, one responsibility. If two products need to sync to function, it's wrong.

Examples

The examples/ directory contains ready-to-run TypeScript examples for the @dtoolkit/sdk clients:

Example Client What it covers
dbrain.ts DBrainClient Health, entity CRUD, facts, search, memory summary, conversations, federation
dops.ts DOpsClient Sessions, token usage, tool calls, events, errors, analytics
dproxy.ts DProxyClient Batch ask, streaming, system prompts, file attachments, history, memory
dwork.ts DWorkClient Projects, tasks, docs, search, overview
demo.ts All SDK clients Combined smoke test
cd examples
npm install
npm start # init + start servers + run demo + teardown

No configuration needed — the setup script creates a temporary brain, starts dbrain and dproxy, runs the demo, and cleans up. See the examples README for details.

Quick start

# Install dependencies
pnpm install
# Build all packages (dependency-ordered)
pnpm build
# Run tests
pnpm test
# Lint
pnpm lint

Per-package:

pnpm --filter @dtoolkit/dbrain dev # watch mode
pnpm --filter @dtoolkit/dwork dev # watch mode
pnpm --filter @dtoolkit/dproxy build # single build

Contributing

Contributions are welcome! Here's how you can help:

  • Report bugs — open an issue with steps to reproduce
  • Suggest features — open an issue describing the use case and expected behavior
  • Send a PR — fork the repo, create a branch, make your changes, and open a pull request

Development setup

This is a pnpm workspace monorepo using Turborepo for task orchestration and Changesets for versioning.

git clone https://github.com/ivncmp/dtoolkit.git
cd dtoolkit
pnpm install
pnpm build

Submitting changes

  1. Create a feature branch from main
  2. Make your changes and ensure they pass checks: pnpm lint && pnpm format:check && pnpm test
  3. Add a changeset describing your change: pnpm changeset
  4. Push and open a PR against main

CI runs lint, tests, and build automatically. When a PR with changesets is merged, the release workflow creates a version PR — merging that publishes to npm.

Acknowledgements

License

MIT

About

Open-source harness engineering toolkit for AI coding agents.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /