Skip to content
 
 

Repository files navigation

drone monorepo

A Bun + Turborepo monorepo for running and managing agent-enabled “drone” containers.

  • dvm (apps/dvm): CLI for managing Docker containers as “VM-like” machines, including tmux-backed persistent sessions and optional agent setup.
  • drone (apps/drone): host CLI + in-container daemon that exposes a local REST API for controlling processes/sessions inside a container (implemented on top of dvm).
  • drone-hub (apps/drone-hub): web UI for listing/grouping drones and interacting with them (Vite/React).
  • voice-stream (apps/voice-stream): Android voice capture app plus a Node.js WebSocket server for APK download, pairing, monitoring, and optional Groq STT/TTS.
  • looped (apps/looped): scaffolded minimal loop harness wrapper for repeatedly running an agentic CLI prompt.
  • drone-sdk (packages/drone-sdk): TypeScript SDK for creating drones, working with groups and chats, and sending prompts through Drone Hub.

Repo layout

  • apps/dvm/: DVM CLI and scripts
  • apps/drone/: Drone CLI + daemon
  • apps/drone-hub/: Drone Hub UI
  • apps/voice-stream/: Android app and voice stream server
  • apps/looped/: Looped CLI scaffold
  • packages/drone-sdk/: Drone SDK package

Prerequisites

  • Bun (repo is pinned to bun@1.2.23 via package.json)
  • Node.js (>= 18) for the built CLIs
  • Docker (local daemon)

Installation

From the repo root:

# install workspace dependencies
bun install

# build all apps (outputs to apps/*/dist)
bun run build

# install CLI commands into your shell PATH
npm link ./apps/dvm
npm link ./apps/drone
npm link ./apps/looped

If the commands are not found, ensure your npm global bin is on PATH:

export PATH="$(npm prefix -g)/bin:$PATH"

Quickstart (run)

After installation:

# dvm
dvm --help

# drone
drone --help

# looped
looped --help

Typical flow:

# create a drone container + start its daemon + register it locally
drone create <name>

# start the Hub UI/API and Voice Stream server (detached)
drone hub

Drone Hub UI-only development (Vite dev server):

bun run drone-hub

Development

Common monorepo commands:

# run all dev tasks in parallel (no caching)
bun run dev

# lint / format across all workspaces
bun run lint
bun run format

Run a single app in dev mode:

# dvm dev (ts-node)
bun run dvm -- --help

# drone dev (ts-node)
bun run drone -- --help

# voice-stream server
bun run voice-stream

# Voice Stream Next backend + web dashboard
bun run vsn

# Voice Stream Next desktop client
bun run vsn:desktop

# voice-stream Android debug APK
ANDROID_HOME=/path/to/android-sdk bun run voice-stream:apk

# looped dev (ts-node)
bun run looped -- --help

Notes on security

The drone daemon is effectively remote code execution inside a container. It uses a per-drone Bearer token and is intended to be bound to localhost by default.

For details, see apps/drone/README.md.

More documentation

  • Drone: apps/drone/README.md
  • DVM: apps/dvm/README.md
  • Drone Hub UI: apps/drone-hub/README.md
  • Voice Stream: apps/voice-stream/README.md
  • Looped: apps/looped/README.md

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages