Skip to main content

Claude Flow Plugin

The Claude Flow plugin provides an AI-assisted development environment that creates isolated Docker containers for development sessions with integrated Vault secret management.

Overview

PropertyValue
Package@internal/plugin-claude-flow
TypeFrontend
Plugin IDclaude-flow
Backendclaude-flow-backend
Themetool

Architecture

Components

ClaudeFlowPage

Main page component with session management interface.

<ClaudeFlowPage />

Features:

  • Router-based navigation between session views
  • Session list and detail views
  • Create session interface

SessionList

Displays all user's Claude Flow sessions.

<SessionList onSessionSelect={handleSelect} />

Features:

  • List all sessions with status indicators
  • Filter by status (running, stopped, error)
  • Quick actions (start, stop, delete)

SessionDetail

Detailed view of individual session.

<SessionDetail sessionId={id} />

Features:

  • Container logs and output
  • Resource usage statistics
  • Session configuration
  • Start/stop controls

CreateSessionForm

Form for creating new development sessions.

<CreateSessionForm onSubmit={handleCreate} />

Features:

  • Repository selection
  • Branch selection
  • Startup script configuration
  • Template-based session creation

API Client

interface ClaudeFlowApi {
// Session operations
listSessions(): Promise<Session[]>;
getSession(sessionId: string): Promise<Session>;
createSession(input: CreateSessionInput): Promise<Session>;
updateSession(sessionId: string, input: UpdateSessionInput): Promise<Session>;
deleteSession(sessionId: string): Promise<void>;

// Container operations
startSession(sessionId: string): Promise<void>;
stopSession(sessionId: string): Promise<void>;
getSessionLogs(sessionId: string): Promise<string>;
getSessionStats(sessionId: string): Promise<ContainerStats>;

// Template operations
listTemplates(): Promise<Template[]>;
createTemplate(input: CreateTemplateInput): Promise<Template>;

// Repository operations
listRepositories(): Promise<Repository[]>;
getRepositoryBranches(repo: string): Promise<Branch[]>;
}

Session Lifecycle

Configuration

The plugin requires backend configuration:

# app-config.yaml
claudeFlow:
docker:
socketPath: /var/run/docker.sock
vault:
address: https://vault.example.com
repositories:
basePath: /data/repos