How codewithmubasher/nightcode works
NightCode is a workspace-oriented AI coding assistant. A user selects a workspace and chats; the frontend sends chat requests to the Go API, which streams a model-driven agent run. The agent builds workspace-aware context, requests model responses, executes tools, and returns events for the chat UI; chat and artifact data are persisted. The tree also shows provider choices, workspace management, and MCP connectors as significant capabilities. The README is empty and several backend excerpts are partial, so uncertain internal wiring is omitted.
Main entry points: handler.go API handler · chat-view.tsx Chat view · loop.go Agent loop · backend-runtime.ts Backend client
Components 20
Chat interface
- Application shell
Frontend/src/App.tsx - Page router
Frontend/src/router.tsx - Chat view
Frontend/src/components/chat-view.tsx - Chat state
Frontend/src/context/chat-context.tsx - Backend client
Frontend/src/lib/backend-runtime.ts
API and orchestration
- HTTP server
Backend/cmd/server/main.go - API handler
Backend/internal/api/handler.go - Message reversal
Backend/internal/api/reverse.go - SQLite store
Backend/internal/store/sqlite.go
Agent runtime
- Agent loop
Backend/internal/agent/loop.go - Workspace context
Backend/internal/context/context_manager.go - Workspace tools
Backend/internal/tools/workspace.go - Tool registry
Backend/internal/tools/registry.go - File and shell tools
Backend/internal/tools
Providers and connectors
- Model providers
Backend/internal/provider - MCP connectors
Backend/internal/api/handler.go - MCP client
Backend/internal/mcp/client.go
Other components
- User
- Model services
- MCP server processes
Connections 22
- User → Application shell: uses
- Application shell → Page router: renders routes
- Page router → Chat view: opens chat
- Chat view → Chat state: updates messages
- Chat view → Backend client: sends requests
- Chat state → Backend client: loads chats
- Backend client → HTTP server: HTTP requests
- HTTP server → API handler: dispatches
- API handler → Agent loop: starts runs
- API handler → SQLite store: persists chat data
- API handler → Message reversal: reverses messages
- API handler → MCP connectors: registers connectors
- API handler → Model providers: selects provider
- Agent loop → Workspace context: builds prompt
- Workspace context → Workspace tools: reads workspace
- Agent loop → Model providers: requests completion
- Model providers → Model services: streams responses
- Agent loop → Tool registry: dispatches tools
- Tool registry → File and shell tools: executes tool
- MCP connectors → MCP client: creates clients
- MCP client → MCP server processes: JSON-RPC
- Chat view → User: streams results