- Web UI for browsing and editing OpenClaw memory files - Cloned from https://github.com/silicondawn/memory-viewer - Built and running on port 8901 - Features: file tree, markdown rendering, search, live reload - Full access to MEMORY.md, daily notes, skills, automations
156 lines
5.1 KiB
Markdown
156 lines
5.1 KiB
Markdown
# 📝 Memory Viewer for OpenClaw
|
|
|
|
[](./LICENSE)
|
|
[](https://nodejs.org/)
|
|
[](https://github.com/silicondawn/memory-viewer/releases/tag/v1.2.0)
|
|
[](https://openclaw.com)
|
|
|
|
A beautiful, dark-themed web UI for browsing and editing OpenClaw AI agent memory files. Built specifically for [OpenClaw](https://openclaw.com) agents that store context in Markdown files.
|
|
|
|
<p align="center">
|
|
<img src="./docs/screenshot-dashboard-dark.png" width="48%" alt="Dashboard (Dark)">
|
|
<img src="./docs/screenshot-dashboard-light.png" width="48%" alt="Dashboard (Light)">
|
|
</p>
|
|
<p align="center">
|
|
<img src="./docs/screenshot-viewer-dark.png" width="48%" alt="Viewer (Dark)">
|
|
<img src="./docs/screenshot-viewer-light.png" width="48%" alt="Viewer (Light)">
|
|
</p>
|
|
<p align="center">
|
|
<img src="./docs/screenshot-editor-dark.png" width="48%" alt="Editor">
|
|
<img src="./docs/screenshot-search-dark.png" width="48%" alt="Search">
|
|
</p>
|
|
|
|
## Why Memory Viewer for OpenClaw?
|
|
|
|
OpenClaw agents store their memory in Markdown files (`MEMORY.md`, `memory/*.md`). Memory Viewer provides a dedicated web interface to:
|
|
|
|
- **Browse** memory files in a collapsible tree
|
|
- **Search** across all agent memories instantly
|
|
- **Edit** files directly in the browser
|
|
- **Monitor** agent system status and memory usage
|
|
- **Connect** to multiple OpenClaw agents from a single UI
|
|
|
|
## Features
|
|
|
|
- **📁 File Tree Sidebar** — Navigate all `.md` files in a collapsible tree
|
|
- **📖 Markdown Rendering** — GitHub-flavored Markdown with syntax highlighting, tables, and more
|
|
- **✏️ In-Browser Editing** — Edit files directly with Ctrl+S to save, with optimistic locking for conflict detection
|
|
- **🔍 Full-Text Search** — Search across all memory files instantly (Ctrl+K)
|
|
- **📊 System Dashboard** — Server uptime, memory usage, load averages, and today's memory summary
|
|
- **🔄 Live Reload** — Files auto-refresh when changed on disk (via WebSocket), with 10s polling fallback
|
|
- **📱 PWA Support** — Installable as a standalone app with offline caching
|
|
- **🔗 Deep Linking** — Hash-based routing (`#/file/path`) for bookmarkable file URLs
|
|
- **📊 Mermaid Diagrams** — Render flowcharts and diagrams from fenced code blocks
|
|
- **🚗 Large Screen Optimized** — Touch-friendly UI for car displays (Tesla) and large screens
|
|
- **🌙 Dark/Light Theme** — Toggle between themes, designed for always-on dashboards
|
|
- **📱 Responsive** — Works on mobile with a slide-out sidebar
|
|
- **🌐 Multi-bot Connections** — Connect to multiple OpenClaw agent workspaces from a single UI
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Clone
|
|
git clone https://github.com/silicondawn/memory-viewer.git
|
|
cd memory-viewer
|
|
|
|
# Install
|
|
npm install
|
|
|
|
# Run (starts both API server and Vite dev server)
|
|
npm run dev
|
|
```
|
|
|
|
Then open http://localhost:5173 in your browser.
|
|
|
|
## OpenClaw Integration
|
|
|
|
Memory Viewer works seamlessly with OpenClaw agents. To connect to your OpenClaw agent:
|
|
|
|
1. Make sure your OpenClaw agent is running and accessible
|
|
2. In Memory Viewer, click the network icon in the top-right
|
|
3. Add your agent's workspace path (e.g., `/home/user/clawd`)
|
|
4. Start browsing and editing your agent's memory files
|
|
|
|
## Deployment
|
|
|
|
Memory Viewer can be deployed as a standalone service:
|
|
|
|
```bash
|
|
# Build for production
|
|
npm run build
|
|
|
|
# Start production server
|
|
npm start
|
|
```
|
|
|
|
The server runs on port 8901 by default. You can expose it via Cloudflare Tunnel, Nginx, or any reverse proxy.
|
|
|
|
## Docker Deployment
|
|
|
|
### Quick Start (Pre-built Image)
|
|
|
|
Use the pre-built image from GitHub Container Registry:
|
|
|
|
```bash
|
|
# Run directly with docker
|
|
docker run -d \
|
|
-p 8901:8901 \
|
|
-v ~/.openclaw/workspace:/app/workspace:ro \
|
|
--name memory-viewer \
|
|
ghcr.io/silicondawn/memory-viewer:latest
|
|
|
|
# Or use docker-compose
|
|
docker-compose up -d
|
|
```
|
|
|
|
Open [http://localhost:8901](http://localhost:8901) in your browser.
|
|
|
|
### Build from Source
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/silicondawn/memory-viewer.git
|
|
cd memory-viewer
|
|
|
|
# Build and run
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
### Docker Configuration
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `PORT` | `8901` | Container port (fixed in image) |
|
|
| `WORKSPACE_DIR` | `/app/workspace` | Directory inside container for `.md` files |
|
|
| `STATIC_DIR` | `/app/dist` | Built frontend assets |
|
|
|
|
### Customizing the Mount Path
|
|
|
|
Edit `docker-compose.yml` to point to your actual OpenClaw workspace:
|
|
|
|
```yaml
|
|
volumes:
|
|
- ~/.openclaw/workspace:/app/workspace:ro
|
|
# Windows: C:/Users/YourName/.openclaw/workspace:/app/workspace:ro
|
|
```
|
|
|
|
The `:ro` flag mounts the directory as read-only (recommended for safety).
|
|
|
|
### Building Custom Images
|
|
|
|
Use the provided build script:
|
|
|
|
```bash
|
|
# Build with default tag (latest)
|
|
./scripts/build-docker.sh
|
|
|
|
# Build with specific tag
|
|
./scripts/build-docker.sh v1.2.0
|
|
|
|
# Build and push to registry
|
|
PUSH=true ./scripts/build-docker.sh v1.2.0
|
|
```
|
|
|
|
## License
|
|
|
|
MIT © Silicon Dawn |