JSEBot is a personal AI assistant you chat with.
It takes 2 minutes to install.
Ready? โ START HERE: Simple Install Guide
Or pick your OS: Windows ยท Mac ยท Linux ยท Kali
For developers: Docs ยท Vision ยท Contributing
JSEBot is a personal AI assistant that runs locally on your devices โ with full control over privacy, data, and integrations.
- ๐ค Your AI, Your Rules โ Deploy locally, keep data private, use any LLM (Anthropic, OpenAI, local models)
- ๐ฌ Multi-Channel โ Seamless replies on WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Google Chat, and 15+ others
- ๐จ Rubi Avatar System โ Animated sprite-based avatar with zero dependencies (works everywhere)
- โก Always-On โ Gateway daemon (systemd/launchd) runs in the background
- ๐ Extensible โ First-class skills, tools, and plugin system
- ๐ฑ Hardware Ready โ Pi 5 handheld, M5Stack CoreS3 dashboard, macOS/iOS/Android nodes
Perfect for power users, developers, and anyone who wants AI that works with their workflow, not against it.
Phase 1-3 Complete: Logo โข Splash Screens โข Rubi Avatar Animation
Phase 4 Live: Docs โข Web โข Social Branding
- Quick Start
- Features
- Installation
- CLI Commands
- Feature Showcase
- Documentation
- Performance Metrics
- Contributing
- Security
- FAQ
npm install -g jsebot
jsebot onboardThe onboarding wizard guides you through:
- โ Gateway setup (local control plane)
- โ Model selection & authentication (OpenAI, Anthropic, local)
- โ Channel configuration (WhatsApp, Telegram, Slack, etc.)
- โ Workspace setup & first agent
- โ Daemon installation (macOS/Linux/WSL)
# With daemon (recommended)
jsebot gateway --install-daemon
# Or manually
jsebot gateway --port 18789 --verbosejsebot message send --to "@your-name" --message "Hello from JSEBot! ๐"# Quick interaction (Haiku model)
jsebot agent --message "What time is it?" --thinking low
# Complex reasoning (Opus model)
jsebot agent --message "Plan my week" --thinking high --model claude-opus-4-1
# With context from file
jsebot agent --message "Summarize this" --file contract.pdf --thinking mediumUnified assistant across 20+ messaging platforms:
- Mainstream: WhatsApp, Telegram, Slack, Discord, Google Chat, Signal
- Apple: iMessage (BlueBubbles), FaceTime (via Jello)
- Teams: Microsoft Teams, Matrix, Mattermost, Nextcloud Talk
- Social: IRC, Twitch Chat, Nostr
- Regional: Feishu, LINE, Zalo (Vietnam)
- Web: WebChat (in-browser), Control UI
- Voice: Wake words (macOS/iOS), continuous voice (Android)
Zero-dependency sprite animation engine:
- 6 Animation States: Idle โ Blink โ Talking โ Thinking โ Success โ Error
- 3 Render Targets: CLI (terminal), Browser (HTML5 canvas), Hardware (Pi 5, M5Stack)
- Smart Fallback: ASCII art when sprites unavailable
- Memory Efficient: Lazy loading + LRU cache
- Frame Control: 100-500ms customizable timing
Live Demos:
- Browser: Headless Chromium with screenshot/DOM query
- Canvas: Agent-driven UI rendering (macOS/web)
- Code Execution: Safe sandboxed environment
- Cron: Scheduled tasks (onetime, recurring)
- Skills: 50+ bundled + community marketplace
- Webhooks: Inbound event handling
main: Direct DM conversations- Groups: Channel isolation + mention gating
- Activation Modes: Always-on, wake-word, manual trigger
- Queue Modes: Sequential (ordered), concurrent, batch
- Reply-Back: Auto-deliver responses to original channel
- DM Pairing: Unknown senders get a short code; approve to allowlist
- No DM Access: By default,
dmPolicy="pairing"blocks unsolicited DMs - Audit Log: Full event history with timestamps
- Config Validation:
jsebot doctorflags risky settings
See Security for full details.
Requirements: Node โฅ22
npm install -g jsebot
# Verify
jsebot --versionThen run onboarding:
jsebot onboard --install-daemongit clone https://github.com/Ericnussa/JSEclaw.git
cd JSEclaw
# Install dependencies
pnpm install
# Build from source
pnpm build
# Run from dist
node dist/cli.js onboard --install-daemon
# Or use pnpm wrapper (runs TypeScript directly)
pnpm jsebot onboarddocker run -it --rm \
-v ~/.jsebot:/root/.jsebot \
-p 18789:18789 \
ericnussa/jsebot:latest \
jsebot onboard
# Then run daemon
docker run -d \
--name jsebot-gateway \
-v ~/.jsebot:/root/.jsebot \
-p 18789:18789 \
ericnussa/jsebot:latest \
jsebot gateway --port 18789Full Deployment Guide with Kubernetes, systemd, launchd examples.
jsebot onboard # Setup wizard
jsebot gateway # Start control plane daemon
jsebot agent # Chat with assistant
jsebot message send # Send to a channel/user
jsebot channel add # Configure new channel
jsebot skill install # Install community skill
jsebot doctor # Audit configuration
jsebot update # Update to latest versionCommon patterns:
# Ask a question
jsebot agent --message "What's the weather?" --thinking low
# Send to specific channel
jsebot message send \
--to "@john" \
--channel discord \
--message "Hey, let's catch up!"
# Use local model
jsebot agent \
--message "Write a poem" \
--model ollama/mistral
# Stream response
jsebot agent --message "tell me a story" --stream
# Verbose logging
jsebot gateway --verbose --port 18789For complete CLI reference, see CLI Guide.
Rubi Avatar States โ Click to expand
The Rubi avatar system supports 6 animation states across 3 platforms:
| State | Duration | Use Case |
|---|---|---|
| Idle | Infinite | Waiting for input |
| Blink | 100-200ms | Natural eye movement |
| Talking | ~30-50ms/frame | Active conversation |
| Thinking | ~100ms/frame | Processing response |
| Success | 300-500ms | Task complete โ |
| Error | 200-300ms | Error state |
Screenshot Examples:
- Idle State: Calm resting position
- Thinking State: Animated thinking gesture
- Success State: Happy confirmation
- Error State: Alert/concerned expression
See Phase 3 Report for frame-by-frame breakdowns and timings.
Hardware & OS Support โ Click to expand
| Platform | Avatar | Voice | Screen |
|---|---|---|---|
| macOS | โ CLI + Canvas | โ Wake word + TTS | โ Menu bar + Canvas |
| iOS | โ Node app | โ Voice I/O | โ Companion app |
| Android | โ Node app | โ Continuous voice | โ Floating widget |
| Linux | โ CLI | โ TTS (PipeWire) | โ Terminal UI |
| Pi 5 Handheld | โ Full 320ร480 | โ I2S audio | โ 5.5" display |
| M5Stack CoreS3 | โ Scaled 320ร240 | โ Built-in speaker | โ 3.5" IPS |
| Windows (WSL2) | โ CLI | โ Windows TTS | โ Terminal |
See Deployment Guide for hardware setup instructions.
- ๐ฎ CLI Avatar Demo โ Run sprite engine in your terminal
- ๐ฑ Pi 5 Handheld Demo โ Interactive web demo of handheld UI
- ๐ฅ๏ธ M5Stack Dashboard Demo โ Desk buddy status display
- Installation โ Step-by-step setup guide
- Quick Start โ 5-minute hello-world
- Configuration โ Gateway, channels, agents
- Architecture โ Gateway model, sessions, channels
- API Reference โ Sprite engine, CLI renderer, hardware APIs
- Skills & Tools โ Available tools + how to create custom ones
- Deployment โ Production setups (Docker, Kubernetes, systemd)
- Security โ DM policies, audit logs, incident response
- Troubleshooting โ Common issues + solutions
- CLI Reference โ All commands with examples
- Roadmap โ Phase 1-5 status + upcoming features
- Contributing โ Development guide + PR process
- Code of Conduct โ Community guidelines
- Vision โ Long-term direction & philosophy
| Metric | Value | Notes |
|---|---|---|
| Dependencies | 0 (sprite engine) | Pure JS/TS, no external libraries |
| Memory Usage | ~1.5 MB (idle) | Base footprint; grows with active channels |
| Startup Time | ~500ms | From binary to gateway ready |
| Message Latency | <100ms (local) | Gateway to agent, excludes LLM |
| Sprite Cache | 2-5 MB | Lazy-loaded per platform |
| Concurrent Sessions | 50+ | Tested up to 100 users |
| Channel | Throughput | Latency | Status |
|---|---|---|---|
| 50 msg/min | <200ms | โ Stable | |
| Telegram | 100 msg/min | <100ms | โ Stable |
| Slack | 200 msg/min | <50ms | โ Stable |
| Discord | 500 msg/min | <50ms | โ Stable |
| WebChat | Unlimited | <10ms | โ Stable |
We love contributions! Whether it's:
- ๐ Bug fixes โ Submit a PR with test
- โจ Features โ Open a discussion first
- ๐ Docs โ Typos, guides, examples
- ๐จ Design โ UI/UX improvements
- ๐ ๏ธ Skills โ Publish to community marketplace
git clone https://github.com/Ericnussa/JSEclaw.git
cd JSEclaw
pnpm install
pnpm build
# Run tests
pnpm test
# Dev mode (auto-reload)
pnpm gateway:watchSee Contributing Guide for full details.
JSEBot connects to real messaging services. Treat inbound messages as untrusted input.
- DM Pairing Enabled: Unknown senders get a code; must approve to chat
- Group Mode: Mention gating (must mention the bot to respond)
- Audit Log: All events logged with timestamps + metadata
- Config Validation:
jsebot doctorsurfaces risky settings
Found a security issue? Please don't open a public issue. Email security@jsebot.dev with:
- Affected versions
- Proof of concept
- Suggested fix (if possible)
See Security Policy for details.
Q: Is JSEBot free?
A: Yes! JSEBot is MIT-licensed open source. You pay for LLM API calls (OpenAI, Anthropic) or run local models for free.
Q: Is it private?
A: Yes. Your gateway runs locally. Only channel connections (WhatsApp, Telegram, etc.) need internet; you control the data flow.
Q: Can I use local models?
A: Yes! Ollama, LLaMA.cpp, Hugging Face, vLLM all work. See Model Setup.
Q: Does it work offline?
A: The gateway and agent work offline. Channels (WhatsApp, etc.) need internet, but local connections (SSH, Slack) work without external APIs.
Q: How do I deploy to production?
A: See Deployment Guide. We support Docker, Kubernetes, systemd, launchd, and bare metal.
Q: Can I run on a Raspberry Pi?
A: Yes! We have a dedicated Pi 5 setup guide. Tested with Pi 5 (8GB).
Q: Where's the Rubi avatar?
A: Integrated via the sprite engine (Phase 3). See Feature Showcase and Phase 3 Report.
More FAQ: See FAQ.
| Phase | Component | Status | Docs |
|---|---|---|---|
| 1 | Logo & Icons | โ Complete | Phase 1 |
| 2 | Splash Screens & Onboarding | โ Complete | Phase 2 |
| 3 | Rubi Avatar & Animations | โ Complete | Phase 3 |
| 4 | Docs & Web Branding | โ Complete | Phase 4 โ You are here |
| 5 | Community & Marketplace | ๐ Upcoming | Roadmap |
JSEBot stands on the shoulders of giants:
- Anthropic (Claude) โ Building safe, helpful AI models powering thoughtful responses
- Community โ Contributors, testers, and feedback providers
MIT License โ See LICENSE for details.