Skip to content

Ericnussa/JSEclaw

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16,330 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐Ÿค– JSEBot โ€” Personal AI Assistant

npm version npm downloads GitHub release CI Status License Node.js

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


๐Ÿš€ What is JSEBot?

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.

Hero Banner

JSEBot Hero

Phase 1-3 Complete: Logo โ€ข Splash Screens โ€ข Rubi Avatar Animation
Phase 4 Live: Docs โ€ข Web โ€ข Social Branding


๐Ÿ“‹ Table of Contents


โšก Quick Start

1. Install JSEBot

npm install -g jsebot
jsebot onboard

The 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)

2. Start the Gateway

# With daemon (recommended)
jsebot gateway --install-daemon

# Or manually
jsebot gateway --port 18789 --verbose

3. Send Your First Message

jsebot message send --to "@your-name" --message "Hello from JSEBot! ๐Ÿš€"

4. Chat with the Assistant

# 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 medium

โœจ Features

๐Ÿค– Multi-Channel Inbox

Unified 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)

๐ŸŽจ Rubi Avatar System (Phase 3)

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:

๐Ÿ”Œ First-Class Tools

  • 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

๐Ÿ’พ Session Model

  • 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

๐Ÿ”’ Security Defaults

  • 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 doctor flags risky settings

See Security for full details.


๐Ÿ“ฆ Installation

npm (Recommended)

Requirements: Node โ‰ฅ22

npm install -g jsebot

# Verify
jsebot --version

Then run onboarding:

jsebot onboard --install-daemon

Git Clone (Development)

git 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 onboard

Docker

docker 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 18789

Full Deployment Guide with Kubernetes, systemd, launchd examples.


๐ŸŽฎ CLI Commands

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 version

Common 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 18789

For complete CLI reference, see CLI Guide.


๐ŸŽจ Feature Showcase

Animation Gallery

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.

Platform Support

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.

Demo Links


๐Ÿ“š Documentation

Getting Started

Core Concepts

Operations

Project


๐Ÿ“Š Performance Metrics

Core Engine

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 Performance

Channel Throughput Latency Status
WhatsApp 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

๐Ÿค Contributing

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

Development Setup

git clone https://github.com/Ericnussa/JSEclaw.git
cd JSEclaw

pnpm install
pnpm build

# Run tests
pnpm test

# Dev mode (auto-reload)
pnpm gateway:watch

See Contributing Guide for full details.


๐Ÿ” Security

JSEBot connects to real messaging services. Treat inbound messages as untrusted input.

Key Defaults

  • 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 doctor surfaces risky settings

Disclosure

Found a security issue? Please don't open a public issue. Email security@jsebot.dev with:

  1. Affected versions
  2. Proof of concept
  3. Suggested fix (if possible)

See Security Policy for details.


โ“ FAQ

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.


๐Ÿ“ˆ Project Status

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

๐Ÿ™ Thanks

JSEBot stands on the shoulders of giants:

  • Anthropic (Claude) โ€” Building safe, helpful AI models powering thoughtful responses
  • Community โ€” Contributors, testers, and feedback providers

๐Ÿ“„ License

MIT License โ€” See LICENSE for details.


Made with โค๏ธ by Eric | Twitter | GitHub | Discord

โญ If this helps, please star the repo! It means a lot.

About

Your own personal AI assistant. Any OS. Any Platform. The lobster way. ๐Ÿฆž

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 84.6%
  • Swift 9.1%
  • JavaScript 2.3%
  • Kotlin 2.2%
  • Shell 1.0%
  • CSS 0.4%
  • Other 0.4%