Real-time messaging with AI agents via connected gateways.
- Multi-gateway selection (switch active gateway per session)
- File upload and attachment (images, documents)
- Model selection dropdown (from gateway snapshot)
- Session management (create, switch, load history)
- Streaming message display with live deltas
- In-line button support (single/multi-select from AI)
- Code block rendering with syntax highlighting
- Message actions: copy, download, forward
Toggle between standard chat and NPC (character) mode:
- System prompt injection from active NPC theme
- Emotion parsing:
[face:happy],[face:thinking] - Action parsing:
[act:wave],[act:nod] - Background parsing:
[bg:space],[bg:forest] - Visual avatar responds to directives in real-time
- Theme selection from NPC theme library
Rotating phrases while AI processes:
Thinking..., Pondering..., Hmm..., Let me think..., Processing..., Considering..., Working on it...
Full-featured document editing suite. See forge.md for detailed specs.
| Format | Extensions | Capabilities |
|---|---|---|
| Excel | .xlsx | Grid view, formulas, cell styling, merged ranges |
| Word | .docx | Rich text (TipTap), tables, headings |
| Viewer, OCR, annotations, text extraction | ||
| PowerPoint | .pptx | Slide viewer, editing |
| Korean HWP | .hwp, .hwpx | Text extraction, editing |
| Text | .txt | Plain text editing |
| Markdown | .md | WYSIWYG editor with toolbar |
| JSON | .json | Formatted view with validation |
- AI agents can edit documents via
write_document/edit_documenttool calls - Approval modal for reviewing AI-proposed changes
- Inline AI rewrite: select text, give instruction, apply suggestion
- Change history with version restore
- Agent editing banner when AI is actively modifying
Character-driven AI interaction with visual feedback.
Each NPC theme defines:
name # Character name
systemPrompt # Personality/behavior instructions
emotion # Default emotion state
background # Scene background
avatar # Visual representation config
neutral | happy | thinking | excited | sad | surprised | angry | calm
wave | nod | shake | bounce | bow
Preset: default | forest | space | cozy | ocean | sunset
Custom: User-uploaded images
AI responses can contain inline directives:
[face:happy] I'm glad to help!
[act:wave] Hello there!
[bg:sunset] Let's watch the sunset together.
These are stripped from displayed text and applied to the avatar/scene.
NPC themes are stored in SQLite via npc_themes table, synced through npcThemeStore.svelte.ts.
Multi-gateway connection system for AI backend flexibility.
- User adds gateway (URL + auth credentials)
- App establishes WebSocket connection
- Challenge-response authentication with Ed25519 device identity
- Server provides snapshot (models, agents, sessions)
- Automatic reconnection on disconnect
| Method | Description |
|---|---|
| Token | API key / bearer token |
| Password | Username + password |
| Tailscale | Network-level auth |
| Device | Ed25519 signature (automatic) |
disconnected → connecting → authenticating → connected → error
- Add/edit/remove gateways
- Per-gateway connection status
- Drag-to-reorder gateway tabs
- Duplicate gateway config
- Health check / latency display
Appearance
- Theme: Light / Dark / System
- Language: English / Korean
Chat
- Thinking level: None / Low / Medium / High
- Verbose mode (show reasoning)
API Keys Supported providers:
- OpenAI
- Anthropic
- Groq
- Mistral
- OpenRouter
- Custom endpoint
Gateway
- Gateway list management
- Connection configuration
System
- Auto-update
- Launch on startup
- Minimize to tray
- Agent overview (connected agents count)
- Workflow shortcuts
- Activity panel with connection status
- Active gateways count
- Last sync timestamp
- Latency indicators
- Message queue status
Three-step first-run wizard:
- Welcome & app introduction
- Gateway connection setup
- Configuration confirmation
Completion flag stored in localStorage. Can be re-accessed from navigation.