Skip to main content

Web UI for deepagents — AI-powered workspace with streaming, file browser, and canvas

Project description

Cowork Dash

Web UI for LangGraph and deepagents agents. Provides a chat interface with real-time streaming, a workspace file browser, and a canvas for visualizations.

Stack: Python (FastAPI + WebSocket) backend, React (TypeScript + Vite) frontend.

Features

  • Chat with real-time token streaming via WebSocket
  • Tool call visualization — inline display of arguments, results, duration, and status
  • Rich inline content — HTML, Plotly charts, images, DataFrames, PDFs, and JSON rendered directly in the chat
  • Canvas panel — persistent visualizations (Plotly, matplotlib, Mermaid diagrams, DataFrames, Markdown, images)
  • File browser — workspace file tree with syntax-highlighted viewer and live file change detection
  • Task tracking — sidebar todo list with progress bar, synced with agent write_todos calls
  • Human-in-the-loop — interrupt dialog for reviewing and approving agent actions
  • Token usage — cumulative counter with per-turn breakdown chart
  • Theming — light, dark, and system-auto modes
  • Customization — title, subtitle, welcome message, agent name, and custom icon

Installation

pip install cowork-dash

Quick Start

From Python

from cowork_dash import CoworkApp

app = CoworkApp(
    agent=your_langgraph_agent,  # Any LangGraph CompiledGraph
    workspace="./workspace",
    title="My Agent",
)
app.run()

From CLI

# Point to a Python file exporting a LangGraph agent
cowork-dash run --agent my_agent.py:agent --workspace ./workspace

# With options
cowork-dash run --agent my_agent.py:agent --port 8080 --theme dark --title "My Agent"

Shorthand

from cowork_dash import run_app

run_app(agent=your_agent, workspace="./workspace")

Configuration

Configuration priority: Python args > CLI args > environment variables > defaults.

Option CLI Flag Env Var Default
Agent spec --agent DEEPAGENT_AGENT_SPEC Built-in default agent
Workspace --workspace DEEPAGENT_WORKSPACE_ROOT .
Host --host DEEPAGENT_HOST localhost
Port --port DEEPAGENT_PORT 8050
Debug --debug DEEPAGENT_DEBUG false
Title --title DEEPAGENT_TITLE Agent's .name or "Cowork Dash"
Subtitle --subtitle DEEPAGENT_SUBTITLE "AI-Powered Workspace"
Welcome message --welcome-message DEEPAGENT_WELCOME_MESSAGE (empty)
Theme --theme DEEPAGENT_THEME auto
Agent name --agent-name DEEPAGENT_AGENT_NAME Agent's .name or "Agent"
Icon URL --icon-url DEEPAGENT_ICON_URL (none)

Stream Parser Config

Control how agent events are parsed by passing stream_parser_config to CoworkApp:

app = CoworkApp(
    agent=agent,
    stream_parser_config={
        "extractors": [...],  # Custom tool extractors
    },
)

See langgraph-stream-parser for details.

Architecture

Browser  <--WebSocket-->  FastAPI  <--astream_events-->  LangGraph Agent
            /ws/chat         |
                        REST APIs:
                          /api/config
                          /api/files/tree
                          /api/files/{path}
                          /api/canvas/items

The frontend is pre-built and bundled into the Python package as static files. No Node.js required at runtime.

Development

# Backend
pip install -e ".[dev]"
pytest tests/

# Frontend
cd frontend
npm install
npm run build    # outputs to cowork_dash/static/
npm run dev      # dev server with hot reload (proxy to backend on :8050)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cowork_dash-0.3.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cowork_dash-0.3.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file cowork_dash-0.3.0.tar.gz.

File metadata

  • Download URL: cowork_dash-0.3.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.8

File hashes

Hashes for cowork_dash-0.3.0.tar.gz
Algorithm Hash digest
SHA256 23023d1e5a5e98f01770c5838c7c57fed635c34f759e7ba4498f07b74239496e
MD5 ec8a774ed81d93aeef546a67133d3b9d
BLAKE2b-256 36fd46ce53ca922cdde1d3630f4db6eaa42077f5c13639ff900689040ca2fa50

See more details on using hashes here.

File details

Details for the file cowork_dash-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cowork_dash-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc0edf22f643d0b95084160102d74fe66541abc399effe239c45c6609b5ad39d
MD5 b995af98f98cb2c471511e67bdd68c43
BLAKE2b-256 b0d7f1fa76c098e9b9d9e18af8e565351722fd947cd402bb7b8000996996f9ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page