- Copy complete source code packages from original CodeNomad project - Add root package.json with npm workspace configuration - Include electron-app, server, ui, tauri-app, and opencode-config packages - Fix Launch-Windows.bat and Launch-Dev-Windows.bat to work with correct npm scripts - Fix Launch-Unix.sh to work with correct npm scripts - Launchers now correctly call npm run dev:electron which launches Electron app
55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
# CodeNomad UI
|
||
|
||
This package contains the frontend user interface for CodeNomad, built with [SolidJS](https://www.solidjs.com/) and [Tailwind CSS](https://tailwindcss.com/).
|
||
|
||
## Overview
|
||
|
||
The UI is designed to be a high-performance, low-latency cockpit for managing OpenCode sessions. It connects to the CodeNomad server (either running locally via CLI or embedded in the Electron app).
|
||
|
||
## Features
|
||
|
||
- **SolidJS**: Fine-grained reactivity for high performance.
|
||
- **Tailwind CSS**: Utility-first styling for rapid development.
|
||
- **Vite**: Fast build tool and dev server.
|
||
|
||
## Development
|
||
|
||
To run the UI in standalone mode (connected to a running server):
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
This starts the Vite dev server at `http://localhost:3000`.
|
||
|
||
## Building
|
||
|
||
To build the production assets:
|
||
|
||
```
|
||
npm run build
|
||
```
|
||
|
||
The output will be generated in the `dist` directory, which is then consumed by the Server or Electron app.
|
||
|
||
## Debug Logging
|
||
|
||
The UI now routes all logging through a lightweight wrapper around [`debug`](https://github.com/debug-js/debug). The logger exposes four namespaces that can be toggled at runtime:
|
||
|
||
- `sse` – Server-sent event transport and handlers
|
||
- `api` – HTTP/API calls and workspace lifecycle
|
||
- `session` – Session/model state, prompt handling, tool calls
|
||
- `actions` – User-driven interactions in UI components
|
||
|
||
You can enable or disable namespaces from DevTools (in dev or production builds) via the global `window.codenomadLogger` helpers:
|
||
|
||
```js
|
||
window.codenomadLogger?.listLoggerNamespaces() // => [{ name: "sse", enabled: false }, ...]
|
||
window.codenomadLogger?.enableLogger("sse") // turn on SSE logs
|
||
window.codenomadLogger?.disableLogger("sse") // turn them off again
|
||
window.codenomadLogger?.enableAllLoggers() // optional helper
|
||
```
|
||
|
||
Enabled namespaces are persisted in `localStorage` under `opencode:logger:namespaces`, so your preference survives reloads.
|
||
|