RepoSwarm UI is a Next.js dashboard for managing and monitoring the AI-powered multi-repo architecture discovery platform.
- Dashboard: Real-time overview of system status, active workflows, and recent activity
- Workflows: Monitor and manage Temporal workflow executions
- Repositories: Configure and manage tracked repositories
- Triggers: Manually trigger investigations on single or multiple repositories
- Settings: View and configure system settings
- Framework: Next.js 16+ (App Router)
- Language: TypeScript (strict mode)
- Styling: Tailwind CSS with dark theme
- State Management: React Query (TanStack Query)
- Charts: Recharts
- Icons: Lucide React
- Backend Integration: Temporal HTTP API & AWS DynamoDB
- Node.js 22+
- npm or yarn
- Access to Temporal server
- AWS credentials configured
Create a .env.local file with:
TEMPORAL_SERVER_URL=http://temporal-alb-internal:8233
TEMPORAL_NAMESPACE=default
TEMPORAL_TASK_QUEUE=investigate-task-queue
AWS_REGION=us-east-1
DYNAMODB_CACHE_TABLE=reposwarm-cache
CODECOMMIT_ENABLED=true
REPOSWARM_API_URL=http://api:3000| Variable | Default | Description |
|---|---|---|
TEMPORAL_SERVER_URL |
— | Temporal HTTP API endpoint |
TEMPORAL_NAMESPACE |
default |
Temporal namespace |
TEMPORAL_TASK_QUEUE |
investigate-task-queue |
Temporal task queue |
AWS_REGION |
us-east-1 |
AWS region for DynamoDB |
DYNAMODB_CACHE_TABLE |
reposwarm-cache |
DynamoDB table for caching |
CODECOMMIT_ENABLED |
true |
Enable CodeCommit integration |
REPOSWARM_API_URL |
http://api:3000 |
URL of the RepoSwarm API server. Used to proxy /v1/* requests from the UI to the API in Docker Compose setups. |
npm installnpm run devOpen http://localhost:3000 to view the application.
npm run buildnpm startPre-built images are published on every push to main:
docker pull ghcr.io/reposwarm/ui:latestOr build locally:
docker build -t reposwarm-ui .docker run -p 3000:3000 \
-e TEMPORAL_SERVER_URL=http://temporal:8233 \
-e AWS_REGION=us-east-1 \
-e DYNAMODB_CACHE_TABLE=reposwarm-cache \
ghcr.io/reposwarm/ui:latestMulti-arch images available: linux/amd64 and linux/arm64.
| Route | Method | Description |
|---|---|---|
/api/workflows |
GET | List workflow executions |
/api/workflows/[id] |
GET | Get workflow details |
/api/workflows/[id]/terminate |
POST | Terminate workflow |
/api/trigger/single |
POST | Trigger single repo investigation |
/api/trigger/daily |
POST | Trigger daily investigation |
/api/repos |
GET/POST | List/add repositories |
/api/repos/[name] |
PATCH/DELETE | Update/delete repository |
/api/health |
GET | Health check |
/api/config |
GET | Get configuration |
src/
├── app/ # Next.js app router pages
│ ├── api/ # API routes
│ ├── workflows/ # Workflow pages
│ ├── repos/ # Repository management
│ ├── triggers/ # Manual triggers
│ └── settings/ # Settings page
├── components/ # React components
│ ├── ui/ # Reusable UI components
│ └── ... # Feature components
├── lib/ # Utilities and clients
│ ├── temporal.ts # Temporal HTTP client
│ ├── dynamodb.ts # DynamoDB client
│ └── types.ts # TypeScript types
└── hooks/ # Custom React hooks
The UI communicates with:
- RepoSwarm API Server (
/v1/*proxied via Next.js rewrites) - for repository management, investigation triggers, and results. In Docker Compose setups, the UI proxies all/v1/*requests to the standalone API container (REPOSWARM_API_URL). - Temporal Server HTTP API (port 8233) - for workflow management
- AWS DynamoDB - for repository configuration and caching
- RepoSwarm Workers - indirectly through Temporal workflows
MIT
| Project | Docker Image |
|---|---|
| reposwarm (worker) | ghcr.io/reposwarm/worker:latest |
| reposwarm-api | ghcr.io/reposwarm/api:latest |
| reposwarm-ui (this repo) | ghcr.io/reposwarm/ui:latest |
| reposwarm-cli | — (binary install) |
| reposwarm-askbox | ghcr.io/reposwarm/askbox:latest |
All Docker images are multi-arch (linux/amd64 + linux/arm64), published automatically on every push to main.