DGC v0.50.1 is out
Navigate
Install DGC

SDK · 0.8.0

Your product.
The DGC harness.

Bring the agent loop into what you build. A Python SDK for applications that work with people, and automations that work while you’re away. TypeScript is in the same repository.

pip install dgc-sdk · npm install @vibedgc/sdk · protocol v14 · CLI 0.50.0+

your intent agent loop observable work
ONE HARNESS · YOUR INTERFACE
Built around the DGC runtime
Local + API modelsPolicy that holds in auto modeExplicit permissions

Get started / SDK + agents

From your terminal.
Or your coding agent.

Choose Python or TypeScript for your integration. Give your coding agent the documentation to help you build it.

Install the current DGC CLI

Install from PyPI.

dgc-sdk · 0.8.0
PythonpipPyPI
python3 -m pip install dgc-sdk
TypeScriptNode 22+GitHub release
npm install https://github.com/OpenPeach-ai/dgc/releases/download/sdk-v0.8.0/vibedgc-sdk-0.8.0.tgz

pip install dgc-sdk is this product (import dgc_sdk). Do not run pip install dgc — that PyPI name is a different project. You also need the DGC CLI, 0.50.0 or newer (curl -fsSL https://vibedgc.com/install.sh | bash); the SDK finds it. Set inherit_user_state=False in production.

  1. 01Choose your language

    Python in your environment. TypeScript in your Node project.

  2. 02Connect the runtime

    Use the verified DGC version supported by the SDK release.

  3. 03Open a session

    Set your workspace, model, and permission policy.

01 / The developer experience

From a few lines
to a visible workflow.

Choose a use case. Follow an agent turn from intent to result, with task progress and the permission decision in view.

Interactive concept
01

A coding assistant inside your app.

Stream progress into your interface. Let a person decide when the agent can change a file.

import { DGC } from "@vibedgc/sdk"; // from the GitHub release

const dgc = new DGC({
  stateDir: "/var/lib/myapp/dgc",
  inheritUserState: false,
});
try {
  const session = await dgc.session({
    cwd: "./checkout-app",
    permissions: { mode: "default", unhandled: "deny" },
    onPermission: request => askPerson(request),
  });
  const run = session.stream("Fix the empty-cart checkout error");
  for await (const event of run) render(event);
  showResult(await run.result());
} finally {
  await dgc.close();
}
assistant.tsSDK 0.8.0 · protocol v14
Session / checkout-appReady
Inspect the checkout flowPending
Add an empty-cart guardPending
Run the focused checksPending
Event stream0 events
  1. Your session’s story appears here.
    Start the demo, or advance one event at a time.

Scripted illustration. No model calls or file changes.

02 / Integration recipes

A few moving parts.
See how they fit.

Start with your workspace. Add progress, decisions, or a job. Explore the code in either language, then select a note to see what each piece does.

One runtime. Two languages.
Your integration, piece by piece.

workspace.ts
import { DGC } from "@vibedgc/sdk"; // from the GitHub release

const dgc = new DGC({
  stateDir: "/var/lib/myapp/dgc",
  inheritUserState: false,
});
try {
  const session = await dgc.session({
    cwd: "./checkout-app",
    permissions: { mode: "default", unhandled: "deny" },
  });
  const result = await session.run(
    "Explain the checkout flow. Do not edit files."
  );
  console.log(result.finalText);
} finally {
  await dgc.close();
}
01 · Workspace

The working directory scopes the session to your project. Permission rules still govern tool access; the prompt is not a security boundary.

What your app receivesIllustrated output
session  → ./checkout-app
result   → checkout flow explained
runtime  → closed by the application

SDK 0.8.0. Python snippets belong inside an async function when using AsyncDGC. The workbench output is scripted.

03 / The shape of the system

Your interface.
One agent engine.

The SDK should expose the harness DGC already uses. A managed local process connects your code to sessions, tools, and your configured model.

01

Your surface

Application server
CI or background worker

You own the experience
02

DGC SDK

Python / TypeScript
Sessions, events, results

pip install dgc-sdk
03

DGC runtime

Context, tools, permissions
Your configured model

Managed process · NDJSON

A browser UI talks to your application server. The DGC process and provider credentials stay on the server or your machine.

04 / In 0.8.0

Control the work.
See it happen.

Applications and automation share the same session lifecycle, policy, and event model.

What is released
01

Sessions that pick up where you left off

Create, run, resume, and close a session with explicit ownership, workspace boundaries, and predictable process cleanup.

sessions · history · lifecycle
02

A stream you can build a UI around

Typed messages, tool activity, task updates, approvals, usage, and a final result. Task IDs keep completed work checked off.

events · progress · results
03

Permissions suited to the context

Ask a person inside an app. Apply an explicit policy in a job. Missing decisions fail closed, with cancellation and time limits.

approvals · policy · cancellation
04

Useful outputs, dependable failures

Validated structured results, typed errors, exit outcomes, and usage records make an agent run easier to integrate and test.

schemas · errors · observability
05

Artifacts your app can keep

Create, read, edit, compare, restore and export artifacts through Python or TypeScript. Dashboard sources wait for explicit consent.

session.artifacts · versions · exports
06

Mods you can write and host

Build a mod in Python or TypeScript, declare the capabilities it needs and run it through the SDK. Guards can hold an action; they cannot grant permission.

dgc_sdk.mods · @vibedgc/sdk/mods

06 / Pips for your app

Pips that work
for your business.

Your app gives its Pips its own tools, decides what they may change, wakes them when something happens, and keeps them in code. One company, your own profile: a Pip reads freely, and a change waits for a person unless one already said Always allow.

Read the guide
01

Your app’s own tools

Declare each tool as a read or a change. DGC calls your app at its own web address, every call signed; a handler in the SDK checks it and runs your function.

define_pip_tool · register_app · AppToolHandler
02

Approvals on your own screen

When a Pip wants to change something, your app hears about it and a person decides there, or in DGC. Whichever answers first wins, once. A tool that moves money always asks.

pips.pending · pips.decide
03

Your events wake a Pip

“When the shop sends order.created.” What your app sends reaches the Pip as data, never instructions, and the same event never runs twice.

pips.trigger
04

On a server

Pips run with no desktop, under systemd or in Docker, with a health check for your probes. On a server they use API keys or your own models, never a personal plan.

dgc pips serve --server · dgc pips health
05

Pips in code

Each deploy makes your Pips match their templates. What narrows a Pip applies at once; what widens it waits for a person. A change you made in DGC is kept and reported.

PipTemplate · pips.ensure_all

07 / Released

Python is on PyPI.
Node ships with each release.

SDK 0.8.0 pairs with CLI 0.50.0 or newer (protocol v14). A workspace cannot grant itself permissions, and the provider key never enters the agent’s environment. The SDK 0.8.0 release dry run passed on Linux, macOS 26.5.1 (Apple silicon), and Windows 11 through WSL 2 (Ubuntu 24.04).

  1. Released

    pip install dgc-sdk

    Python 0.8.0 on PyPI. Isolation, a RuntimePolicy that holds in auto mode, streaming, cancel, denials, audit, real usage, custom tools.

  2. Released

    Node client

    npm i @vibedgc/sdk — 0.8.0 on the npm registry for Node 22+, published from the release tag through npm Trusted Publishing. Same policy and protocol v14.

  3. Validated

    macOS and Windows through WSL

    The SDK 0.8.0 release dry run passed on macOS 26.5.1 (Apple silicon) and Windows 11 through WSL 2 (Ubuntu 24.04), alongside Linux. Native Windows remains experimental; focused SDK checks passed there, while the full suite ran in WSL.

Do not pip install dgc. That PyPI name is a different project.

08 / A few details

Before you build.

Can I install the SDK today?

Yes. python3 -m pip install dgc-sdk from PyPI (version 0.8.0). That is import dgc_sdk. Do not pip install dgc — that name is a different project. The Node package is npm i @vibedgc/sdk from the npm registry. You also need the DGC CLI, 0.50.0 or newer; the SDK finds an installed dgc.

Does this run in the browser?

No. Python or Node on your server or machine. A browser UI talks to your backend, which owns the DGC process, workspace, and provider credentials.

Which models does it support?

The same native local and API routes as the CLI. Set model and base_url on the client. Subscription routes keep vendor-CLI tool ownership; do not assume they behave like native mode.

Are the code samples the real API?

Yes for Python 0.8.0: DGC(inherit_user_state=False), session.run / session.stream, RuntimePolicy. The workbench animation is scripted and does not call a model. TypeScript uses stateDir and inheritUserState, from npm i @vibedgc/sdk.

Same harness. More places to build.

Make the agent
part of your product.

Install dgc-sdk Read the SDK docs