Web UI for the Engram memory ecosystem.
Ecosystem:Β Memory API β’ Code Search β’ Local Embeddings β’ Dashboard
Visualize, search, and manage your AI agent's memory. Built with Next.js, Tailwind, and shadcn/ui.
| Feature | Description |
|---|---|
| π Overview | Key metrics, health status, API usage charts |
| π§ Memories | Browse, search, filter, and edit stored memories |
| π Analytics | Memory trends, type distribution, layer breakdown |
| π Ensemble | Multi-model embedding management, coverage stats |
| πΈοΈ Graph | D3 force-directed visualization of memory relationships |
| π₯ Users | View users and their memory statistics |
| π API Keys | Create and manage API keys |
| βοΈ Settings | Configure LLM providers, vector storage, webhooks |
| π Docs | Built-in documentation and quickstart guides |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Engram Dashboard π βοΈ beaux βΌ β
ββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββ€
β β β
β π Overview β ββββββββββββββββββββββββββββββββββββββββββ β
β π§ Memories β β Total Memories: 1,247 β β
β π Analyticsβ β Active Users: 3 β β
β π Ensemble β β API Calls (24h): 4,521 β β
β πΈοΈ Graph β β Health: β
All systems operational β β
β π₯ Users β ββββββββββββββββββββββββββββββββββββββββββ β
β π API Keys β β
β βοΈ Settings β ββββββββββββββββββββββββββββββββββββββββββ β
β β β Memory Type Distribution β β
β βββββββββββ β β ββββββββββββ FACT (45%) β β
β π Docs β β ββββββββ PREFERENCE (32%) β β
β β β ββββ EVENT (15%) β β
β β β ββ TASK (6%) β β
β β β β CONSTRAINT (2%) β β
β β ββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββ
# Clone
git clone https://github.com/heybeaux/engram-dashboard
cd engram-dashboard
# Install
pnpm install
# Configure
cp .env.example .env.local
# Edit NEXT_PUBLIC_ENGRAM_API_URL if needed
# Run
pnpm devOpen http://localhost:3000.
Requirements:
- Node.js 18+
- Engram API running on localhost:3001
To access the dashboard from other devices on your network:
# Start with host binding
pnpm dev --hostname 0.0.0.0
# Or for production
pnpm build
pnpm start --hostname 0.0.0.0Then access from any device: http://<your-ip>:3000
Finding your IP:
# macOS/Linux
ifconfig | grep "inet " | grep -v 127.0.0.1
# Windows
ipconfig | findstr "IPv4"| Variable | Default | Description |
|---|---|---|
NEXT_PUBLIC_ENGRAM_API_URL |
http://localhost:3001 |
Engram API URL |
NEXT_PUBLIC_CODE_API_URL |
http://localhost:3002 |
engram-code API URL (optional) |
For LAN access, set the API URL to your machine's IP:
NEXT_PUBLIC_ENGRAM_API_URL=http://192.168.1.100:3001βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β engram-dashboard β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Next.js 14 (App Router) β β
β β β β
β β /dashboard - Overview metrics β β
β β /memories - Memory browser β β
β β /memories/:id - Memory detail + embeddings tab β β
β β /analytics - Trends and charts β β
β β /ensemble - Multi-model management β β
β β /graph - D3 memory visualization β β
β β /users - User management β β
β β /api-keys - Key management β β
β β /settings - Configuration β β
β β /docs - Documentation β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ β
β β API Clients β β
β β β β
β β engram-client.ts β Engram Memory API (3001) β β
β β ensemble-client.ts β Ensemble/Re-embedding API β β
β β code-client.ts β engram-code API (3002) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ β
β β UI Components (shadcn/ui) β β
β β β β
β β Button, Card, Dialog, Table, Badge, Chart... β β
β β + custom: MemoryCard, GraphView, EnsemblePanel... β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Search, filter, and explore stored memories:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Memories + Create β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π Search... Type: [All βΌ] Layer: [All βΌ] User: beauxβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π₯ CONSTRAINT Score: 0.95 β β
β β I'm allergic to peanuts 2 hours ago β β
β β Safety-critical β’ Never evicted β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β PREFERENCE Score: 0.82 β β
β β I prefer dark mode Yesterday β β
β β Layer: IDENTITY β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π FACT Score: 0.78 β β
β β I live in Vancouver 3 days ago β β
β β Layer: IDENTITY β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Click a memory to view details:
| Tab | Content |
|---|---|
| Overview | Full content, 5W1H extraction, confidence scores |
| Embeddings | Per-model embedding status (β embedded, β³ pending, β failed) |
| Relationships | Linked memories, contradictions |
| History | Creation, updates, access log |
Multi-model embedding management:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Ensemble Overview β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Model Registry β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Model β Status β Dims β Weight β Coverage β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β bge-base β Active β 768 β 1.0 β ββββββ 100% β β
β β nomic β Active β 768 β 0.8 β ββββββ 85% β β
β β minilm β Shadow β 384 β 0.5 β ββββββ 50% β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Re-embedding Jobs [Run Now] β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Job #42 β Complete β 1,247/1,247 β 3m 24s β β
β β Job #41 β Complete β 856/856 β 2m 12s β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Interactive D3 force-directed graph showing memory relationships:
ββββββββββββββββ
β Allergic to β
β peanuts β π₯ Safety-critical
ββββββββ¬ββββββββ
β related
ββββββββββββββΌβββββββββββββ
β β β
βββββββΌββββββ ββββββΌβββββ βββββββΌββββββ
β Health β β Diet β β Emergency β
β records β β prefs β β contacts β
βββββββββββββ βββββββββββ βββββββββββββ
Legend:
β CONSTRAINT (red ring) β FACT
β PREFERENCE β EVENT
⬀ Large = high score β Small = low score
Interactions:
- Drag nodes to reposition
- Click node to view memory details
- Scroll to zoom
- Hover for tooltip
engram-dashboard/
βββ src/
β βββ app/
β β βββ (dashboard)/
β β β βββ dashboard/ # Overview
β β β βββ memories/ # Memory browser
β β β β βββ [id]/ # Memory detail
β β β βββ analytics/ # Charts & trends
β β β βββ ensemble/ # Multi-model view
β β β βββ graph/ # D3 visualization
β β β βββ users/ # User management
β β β βββ api-keys/ # Key management
β β β βββ settings/ # Configuration
β β βββ docs/ # Documentation pages
β βββ components/
β β βββ layout/ # Sidebar, Header
β β βββ ensemble/ # Multi-model components
β β βββ ui/ # shadcn/ui components
β βββ lib/
β βββ engram-client.ts # Memory API client
β βββ ensemble-client.ts # Ensemble API client
β βββ types.ts # Type definitions
β βββ utils.ts # Utilities
βββ public/
βββ next.config.mjs
βββ tailwind.config.ts
βββ package.json
# Run development server
pnpm dev
# Build for production
pnpm build
# Start production server
pnpm start
# Lint
pnpm lint
# Type check
pnpm tsc --noEmit| Endpoint | Method | Description |
|---|---|---|
/v1/health |
GET | Health check and metrics |
/v1/memories |
GET | List memories |
/v1/memories/:id |
GET | Get memory detail |
/v1/memories/query |
POST | Semantic search |
/v1/memories/graph |
GET | Graph data |
/v1/context |
POST | Load context |
| Endpoint | Method | Description | Status |
|---|---|---|---|
/ensemble/status |
GET | Ensemble config | β |
/ensemble/models |
GET | Model registry | π§ Proposed |
/ensemble/coverage |
GET | Coverage stats | π§ Proposed |
/v1/reembedding/status |
GET | Job status | β |
/v1/reembedding/run |
POST | Trigger job | β |
Endpoints marked "Proposed" gracefully degrade with placeholder data.
| Component | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Styling | Tailwind CSS |
| Components | shadcn/ui |
| Charts | Recharts |
| Graph | D3.js |
| Icons | Lucide React |
- Fork the repository
- Create a feature branch
- Make your changes
- Run
pnpm lintandpnpm build - Submit a pull request
MIT
See what your AI remembers.