Skip to main content

Den Den

Go CI Python CI MIT License

Agent-to-orchestrator communication layer. A gRPC transport where agents call back to the orchestrator via the denden CLI.

Orchestrator (Python gRPC server)
  ├── spawns agents as subprocesses
  └── handles ask_user / delegate / remember / recall requests
         ▲
         │ gRPC (localhost)
         │
     denden CLI (Go binary)
       └── called by agents to send requests

Components

Component Language Path
CLI client Go cli/
Server library Python server/
Protocol Protobuf proto/denden.proto

Quick start

Install the server

cd server
pip install -e '.[dev]'

Build the CLI

cd cli
go build -o denden .

Run the server

denden-server --verbose

Use the CLI

# Health check
./cli/denden status

# Ask user a question
./cli/denden send '{
  "askUser": {
    "question": "Which language?",
    "choices": ["Python", "Go", "Rust"]
  }
}'

# Delegate to a sub-agent
./cli/denden send '{
  "delegate": {
    "delegateTo": "implementer",
    "task": {
      "text": "implement auth module",
      "returnFormat": "TEXT"
    }
  }
}'

# Remember information
./cli/denden send '{
  "remember": {
    "content": "This project uses pytest",
    "keywords": ["testing", "pytest"],
    "scope": "project"
  }
}'

# Recall stored information
./cli/denden send '{
  "recall": {
    "query": "testing framework",
    "scope": "project",
    "maxResults": 5
  }
}'

The CLI auto-fills request_id, denden_version, trace.created_at, and trace fields from environment variables.

Environment variables

Variable Default Description
DENDEN_ADDR 127.0.0.1:9700 Server address
DENDEN_AGENT_ID Agent instance ID (set by orchestrator)
DENDEN_PARENT_AGENT_ID Parent agent instance ID
DENDEN_RUN_ID Run ID
DENDEN_TIMEOUT 30s CLI request timeout

Protocol

Single .proto file at proto/denden.proto. Two RPCs:

  • Send — dispatches ask_user, delegate, remember, or recall requests (oneof payload)
  • Status — health check

Response statuses: OK, DENIED, ERROR.

Regenerate stubs

make proto

Requires protoc, protoc-gen-go, protoc-gen-go-grpc, and grpcio-tools.

Server as a library

from denden import DenDenServer, ok_response
from denden.gen import denden_pb2

server = DenDenServer(addr="127.0.0.1:9700")

def handle_ask_user(request):
    answer = input(request.ask_user.question + " ")
    return ok_response(
        request.request_id,
        ask_user_result=denden_pb2.AskUserResult(text=answer),
    )

def handle_delegate(request):
    # ... run the delegated task ...
    return ok_response(
        request.request_id,
        delegate_result=denden_pb2.DelegateResult(text="done"),
    )

server.on_ask_user(handle_ask_user)
server.on_delegate(handle_delegate)
server.on_remember(handle_remember)
server.on_recall(handle_recall)
server.run()

Dynamic modules

The server CLI supports loading modules at startup:

denden-server --load-module my_custom_module

Modules must expose a module attribute or create_module() function returning a denden.Module subclass.

Metadata

Release files for denden-server 0.1.21

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for denden-server 0.1.21
File Size Uploaded
denden_server-0.1.21.tar.gz 15.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for denden-server 0.1.21
File Interpreter ABI Platform
denden_server-0.1.21-py3-none-any.whl Python 3 none any Details

Total release size: 28.4 kB

Release files / denden_server-0.1.21.tar.gz

Download URL denden_server-0.1.21.tar.gz
Size 15.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7b563fa79f73763fb4ef80d06081e72fd103b7ae68948e13066061ed6be9ff54
BLAKE2b-256 checksum
How to use checksums
1f6d3f041b40113abf1682c9de1ed917f9d797547595a0ec4c4da79b12fd5f96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.

Transparency log

Release files / denden_server-0.1.21-py3-none-any.whl

Download URL denden_server-0.1.21-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1a650acd19d00d30bece55942af47c4fb9a4844ec8f9b3be61235164c69bb97f
BLAKE2b-256 checksum
How to use checksums
fdca354ce4f3c0587232ffc74f5ed6e4b1cdd38cc418a5c287b80f297d9d52f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.21 This release

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page