Skip to main content

Multi-threaded Claude conversations with a web UI

Project description

🧵 Main Thread

PyPI version Python versions License Discord

Multi-threaded Claude conversations with a web UI. Spawn sub-threads for parallel work that you can jump into at any time—these aren't autonomous sub-agents running in the background, they're full conversations you can continue from the CLI or UI whenever you need to.

Use Cases

  • Single orchestrator, multiple workstreams: Interact with one main agent that spawns and manages sub-threads for parallel tasks. Jump into any conversation whenever you need to provide guidance or take over.

  • Naturally parallelizable work: Work on different tickets, features, or areas of the codebase simultaneously. Each sub-thread maintains its own context and working directory.

  • Git worktree integration: With worktrees, each sub-thread can operate in its own isolated branch—making parallel agent work even more ergonomic.

Quick Start

# Try it instantly with uvx (no install needed)
uvx mainthread

# Or install with pip/uv
pip install mainthread
# or
uv add mainthread

# Run the server (opens web UI at http://localhost:2026)
mainthread

# Run in current directory
mainthread serve

# Or specify a different directory
mainthread serve --work-dir /path/to/project

Features

  • Spawned Sub-threads: Create parallel threads for independent work—not background sub-agents, but full conversations you can jump into and continue anytime
  • Nested Sub-threads: Sub-threads can spawn their own sub-threads for hierarchical task decomposition
  • Continue from CLI: Every thread can be resumed from the command line with full conversation history
  • Automatic Notifications: Sub-threads signal completion or need attention; parent thread stays informed
  • Claude Code Integration: Uses Claude Code SDK for tool use and extended thinking
  • Real-time Streaming: SSE-based streaming with reconnection recovery
  • Git-Aware: Detects branch, repo, and worktree status
  • Permission Modes: Plan, Accept, Normal, or Bypass permissions

Thread Tools

Main threads have access to these tools:

Tool Description
SpawnThread Create a sub-thread for parallel work
ListThreads List all threads with status
ReadThread Read a thread's conversation history
ArchiveThread Archive completed threads
SendToThread Send follow-up messages to child threads
Task Quick ephemeral work (Explore, Plan agents)

Sub-threads have:

Tool Description
SignalStatus Signal completion (done) or need for help (blocked)
Task Same as main thread

Development

Prerequisites

  • Python 3.11+
  • Node.js 20+ / Bun
  • Claude Code CLI (npm install -g @anthropic-ai/claude-code)

Setup

# Install all dependencies
just install

# Run both backend and frontend in dev mode
just dev

# Or run them separately:
just serve          # Backend with auto-reload
just dev-frontend   # Frontend with hot reload

Many quick scripts are available in the justfile. Run just to see all available commands.

Project Structure

mainthread/
├── src/mainthread/           # Python backend (FastAPI)
│   ├── cli.py               # Typer CLI
│   ├── server.py            # FastAPI server with SSE
│   ├── db.py                # SQLite persistence
│   └── agents/              # Claude SDK integration + tools
├── apps/web/                # React frontend (TypeScript, Vite, Tailwind)
│   └── src/
│       ├── components/      # UI components
│       └── store/           # Zustand state
└── justfile                 # Development commands

Testing & Quality

just test        # Run tests
just lint        # Check linting
just lint-fix    # Fix lint issues
just typecheck   # Type check
just check       # Run all checks

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

mainthread-0.1.0.tar.gz (203.8 kB view details)

Uploaded Source

Built Distribution

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

mainthread-0.1.0-py3-none-any.whl (211.9 kB view details)

Uploaded Python 3

File details

Details for the file mainthread-0.1.0.tar.gz.

File metadata

  • Download URL: mainthread-0.1.0.tar.gz
  • Upload date:
  • Size: 203.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mainthread-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1bcbc5dad1769901b007103252e8dccd5ea13f5720b9ca588020bc519eb83876
MD5 950b8dc1709356049b2b4b21a55d9298
BLAKE2b-256 5d8eca409276db4b1e23fae67b2d1654f254ca06517ee25bc4db4da788dbc7b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mainthread-0.1.0.tar.gz:

Publisher: release.yml on lucharo/mainthread

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mainthread-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mainthread-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 211.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mainthread-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 862a427d9d764f99c9e5ee9befb1907066b9e8f98f064734ec169aa2e345824f
MD5 14be2f51f0116b8dee42a008b30975b4
BLAKE2b-256 8e2b2091e111bd0513a1f54df09d2d42b218d0201ad3f6e28d66a46873b7e9df

See more details on using hashes here.

Provenance

The following attestation bundles were made for mainthread-0.1.0-py3-none-any.whl:

Publisher: release.yml on lucharo/mainthread

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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