MoltBot VPS Setup: Complete 2026 Guide with Security
The MoltBot Revolution: Why Everyone's Talking About This AI Assistant
In January 2026, MoltBot (originally launched as ClawdBot) became the most viral AI project in history, accumulating over 100,000 GitHub stars in just three days. Unlike traditional chatbots that simply respond to queries, MoltBot is a true autonomous AI agent that can control your computer, manage files, automate workflows, and communicate through messaging apps like Telegram, WhatsApp, and Discord.
The numbers tell a compelling story:
100,000+ GitHub stars within 3 days of launch
Mac Mini sales surged 400% as developers bought dedicated machines to run MoltBot
22% of enterprise organizations detected employees using MoltBot without IT approval
Over 100 community-built skills extending MoltBot's capabilities
Real impact: "MoltBot has replaced three hours of daily administrative work. It manages my email, schedules meetings, and even writes first drafts of client proposals while I sleep. The ROI compared to a $5,000/month assistant is staggering." - Tech startup founder
However, security researchers have identified critical vulnerabilities in over 800 exposed MoltBot instances worldwide, with hundreds leaking API keys, conversation histories, and credentials. This guide ensures you deploy MoltBot safely, avoiding the pitfalls that have compromised thousands of installations.
Understanding MoltBot: What Makes It Different
What is MoltBot?
MoltBot (formerly ClawdBot, renamed after trademark concerns from Anthropic) is an open-source, self-hosted personal AI assistant created by Peter Steinberger in late 2025. Unlike cloud-based AI assistants that process your data on remote servers, MoltBot runs entirely on infrastructure you control.
Key Differentiators:
24/7 Autonomous Operation:
Runs continuously in the background without user interaction
Proactively sends reminders, alerts, and scheduled reports
Maintains persistent memory across all conversations
Executes long-running tasks while you sleep
Full System Access:
Read and write files anywhere on the system
Execute shell commands and scripts
Control browsers through automation
Integrate with email, calendars, and productivity tools
Multi-Channel Communication:
Telegram, WhatsApp, Discord, Slack integration
iMessage support on macOS
Web-based control panel interface
Command-line interface (CLI) access
Extensible Architecture:
100+ community-built skills (plugins)
Support for multiple AI models (Claude, GPT, local models)
Custom skill development capabilities
MoltHub skill marketplace
Why VPS Deployment Is Critical
Many guides recommend installing MoltBot directly on your personal computer, but this creates catastrophic security risks:
Risks of Local Installation:
Full access to personal files, passwords, and sensitive documents
Ability to read your email and private messages
Access to work-related files on your laptop
No isolation if MoltBot gets compromised
Direct exposure of your home network
VPS Advantages:
Isolated environment containing potential damage
24/7 operation without keeping your computer running
Professional-grade security controls and firewalls
Easy to destroy and rebuild if compromised
No risk to your personal data or work files
Security insight: "Of the 800 exposed MoltBot instances we identified, 47% were running on personal laptops with no authentication, giving attackers direct access to users' emails, passwords, and corporate data." - Security researcher Connor O'Reilly
Prerequisites: What You Need Before Starting
Required Accounts and Resources
1. VPS Hosting Provider
Recommended: Hostinger VPS (KVM2 plan minimum)
Alternative providers: DigitalOcean, Hetzner, Vultr, AWS EC2
Minimum specs: 2 CPU cores, 8GB RAM, 100GB storage
Why: NodeJS and MoltBot require significant memory for stable operation
2. AI Model Provider API Key
Anthropic API key (recommended): https://console.anthropic.com/
Alternative: OpenAI API key, local Ollama models
Expected cost: $20-50/month for moderate usage
Why: MoltBot needs an AI model to process your requests
3. Messaging Platform Bot Token
Telegram bot token (easiest for beginners)
Alternative: WhatsApp, Discord, Slack
Setup time: 5 minutes through BotFather
Why: This is how you'll communicate with your MoltBot
4. Basic Technical Skills
Comfortable using command-line terminal
Basic understanding of SSH connections
Ability to copy/paste commands accurately
Patience to read error messages
Cost Breakdown:
VPS hosting: $10-15/month (Hostinger KVM2)
AI model API: $20-50/month (Anthropic Claude)
Domain (optional): $10-15/year
Total monthly: $30-65 (vs. $500+ Mac Mini + electricity)
Step 1: Provisioning Your VPS (15 minutes)
Why We're Doing This
Before MoltBot can run, we need a secure, isolated Linux server. This step creates that foundation - a virtual computer running Ubuntu that exists solely to host your AI assistant, separate from your personal devices.
Creating a Hostinger VPS Account
Navigate to Hostinger VPS hosting and select the KVM2 plan:
Plan Specifications:
2 vCPU cores (handles concurrent AI requests)
8GB RAM (required for NodeJS memory operations)
100GB NVMe storage (stores conversations and skills)
8TB bandwidth (more than sufficient for API calls)
Why KVM2 specifically:
Lower plans (KVM1) have insufficient RAM for stable operation
Higher plans are overkill unless running multiple bots
KVM virtualization provides better performance than OpenVZ
Important configuration choices:
1. Server Location: Choose a data center close to you or your users:
US East (New York) - Best for North America
Europe (Amsterdam) - Best for EU users
Asia (Singapore) - Best for Asian users
Why location matters: Lower latency means faster response times when communicating with your bot. A US user connecting to an Singapore server adds 200-300ms delay per message.
2. Operating System: Select Ubuntu 24.04 LTS (Long Term Support)
Why Ubuntu 24.04:
Latest stable release with 5 years of security updates
NodeJS 22 compatibility tested and confirmed
Most MoltBot documentation assumes Ubuntu
Largest community support for troubleshooting
3. Root Password: Create a strong root password and store it securely:
bash
# Good password example (20+ characters, mixed case, numbers, symbols)
Mb@2026!Secure#VPS$Password789Why a strong password matters: This password grants complete control over your server. If compromised, attackers can access everything MoltBot has access to.
4. Optional Add-ons:
Skip malware scanner (we'll configure our own security)
Skip Docker Manager (manual setup provides better understanding)
Skip automated backups initially (configure after setup)
Post-Purchase Setup
After payment completes, Hostinger creates your VPS (typically 5-10 minutes).
Access your VPS dashboard:
Login to Hostinger hPanel
Navigate to VPS section
Click "Manage" on your new VPS
Wait for "Active" status indicator
Important information to record:
bash
# Note these details for future use
VPS IP Address: 123.45.67.89 # Your unique server IP
SSH Port: 22 # Default SSH port
Root Password: [your password] # Set during purchaseStep 2: Connecting to Your VPS (10 minutes)
Why We're Doing This
Now we need to access our new server through SSH (Secure Shell). This encrypted connection lets us send commands to our VPS from our local computer, establishing a secure terminal session.
Using Hostinger's Built-in Terminal
Easiest method for beginners:
In your VPS dashboard, click the "Terminal" button
A new browser tab opens with direct access to your server
You're automatically logged in as root user
What you'll see:
bash
Welcome to Ubuntu 24.04 LTS (GNU/Linux 5.15.0-1037-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
root@vps-12345:~#Understanding the prompt:
root= current user (superuser with all permissions)vps-12345= your server hostname~= current directory (home folder)#= root user indicator ($would indicate normal user)
Alternative: Connecting via SSH from Your Computer
For macOS/Linux users:
bash
# Open Terminal application
# Replace 123.45.67.89 with your actual VPS IP
ssh root@123.45.67.89What this command does:
ssh= Secure Shell protocol for encrypted connectionsroot= username we're logging in as@= separator between username and server address123.45.67.89= your VPS IP address
First-time connection warning:
bash
The authenticity of host '123.45.67.89 (123.45.67.89)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?Type: yes and press Enter
Why this appears: SSH verifies you're connecting to the correct server, not an imposter. This warning only appears on first connection.
Password entry:
bash
root@123.45.67.89's password:Type your root password (characters won't appear as you type - this is normal security behavior)
For Windows users:
Method 1: Use PowerShell (Windows 10/11)
powershell
# Open PowerShell
# Run the same SSH command
ssh root@123.45.67.89Method 2: Use PuTTY
Download PuTTY from official site
Enter your VPS IP in "Host Name" field
Port: 22
Connection type: SSH
Click "Open"
Login as: root
Password: [your root password]
Step 3: Creating a Dedicated User for MoltBot (5 minutes)
Why We're Doing This
Running MoltBot as the root user is a catastrophic security risk. If MoltBot gets compromised or makes a mistake, it has unlimited power to destroy your entire server. Creating a dedicated user with limited permissions contains potential damage.
Security principle: Principle of least privilege - give only the permissions absolutely necessary, nothing more.
Creating the MoltBot User
bash
# Create a new user named 'moltbot'
adduser moltbotWhat this command does:
adduser= Ubuntu utility for creating users (simpler thanuseradd)moltbot= username we're creating
You'll see this interactive prompt:
bash
Adding user `moltbot' ...
Adding new group `moltbot' (1001) ...
Adding new user `moltbot' (1001) with group `moltbot' ...
Creating home directory `/home/moltbot' ...
Copying files from `/etc/skel' ...
New password:Setting the password:
Type a strong password (won't display as you type)
Retype the same password to confirm
Password recommendations: 16+ characters, mixed case, numbers, symbols
Example password: Mb#User2026!Strong$Pass
User information prompts:
bash
Full Name []: MoltBot AI Assistant
Room Number []: [press Enter to skip]
Work Phone []: [press Enter to skip]
Home Phone []: [press Enter to skip]
Other []: [press Enter to skip]
Is the information correct? [Y/n]Type: Y and press Enter
What just happened:
Created user account
moltbotCreated home directory
/home/moltbotSet up default shell and configuration files
Isolated this user from root privileges
Granting Sudo Privileges
bash
# Add moltbot user to sudo group
usermod -aG sudo moltbotBreaking down this command:
usermod= modify user account-aG= append to group (don't remove from other groups)sudo= group name that grants sudo accessmoltbot= user we're modifying
Why sudo access is necessary:
MoltBot needs to install software packages (NodeJS, npm)
System updates and security patches
Installing MoltBot dependencies
BUT: requires password confirmation for dangerous operations
Testing the new user:
bash
# Switch to moltbot user
su - moltbotWhat this command does:
su= substitute user (change to different user)-= load complete user environmentmoltbot= target user
Your prompt changes:
bash
# Before (root user)
root@vps-12345:~#
# After (moltbot user)
moltbot@vps-12345:~$Notice the difference:
Username changed from
roottomoltbotSymbol changed from
#(root) to$(normal user)Working directory changed to
/home/moltbot
Verify sudo access:
bash
# Test sudo permissions
sudo whoamiEnter the moltbot user password when prompted
Expected output:
bash
[sudo] password for moltbot:
rootWhat happened:
whoaminormally returns current usernamesudo whoamiruns the command as rootReturning "root" confirms sudo works correctly
If you see this error:
bash
moltbot is not in the sudoers file. This incident will be reported.Fix it:
Type
exitto return to root userRe-run the
usermod -aG sudo moltbotcommandSwitch back to moltbot user:
su - moltbot
Step 4: Installing NodeJS and Dependencies (10 minutes)
Why We're Doing This
MoltBot is built with NodeJS, a JavaScript runtime environment. We need to install NodeJS 22 (the latest Long Term Support version that MoltBot requires) along with npm (Node Package Manager) to download and manage MoltBot's code dependencies.
Installing NodeJS via Official Repository
IMPORTANT: Make sure you're logged in as the moltbot user (prompt shows moltbot@ not root@)
bash
# Download and execute NodeJS installation script
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -Breaking down this command:
curl flags explained:
-f= fail silently on server errors (don't show error HTML pages)-s= silent mode (don't show progress meter)-S= show errors even in silent mode-L= follow redirects (important for CDN URLs)
| sudo -E bash - explained:
|= pipe operator (sends curl output to next command)sudo= execute with root privileges-E= preserve environment variablesbash -= execute the script with bash shell
What this script does:
Adds NodeSource official repository to your system
Imports repository signing keys for security
Updates package list to include NodeJS 22
Configures apt to trust NodeSource packages
You'll see output like:
bash
## Installing the NodeSource Node.js 22.x repo...
## Inspecting system...
## Confirming "jammy" is supported...
## Adding the NodeSource signing key to your keyring...
## Creating apt sources list file for the NodeSource Node.js 22.x repo...
## Running `apt-get update` for you...Install NodeJS:
bash
# Install NodeJS and npm
sudo apt-get install -y nodejsCommand explanation:
apt-get= package manager for Ubuntu/Debianinstall= install packages-y= automatically answer "yes" to all promptsnodejs= package name (includes npm automatically)
What happens during installation:
bash
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
nodejs
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.8 MB of archives.
After this operation, 132 MB of additional disk space will be used.Verify installation:
bash
# Check NodeJS version
node --versionExpected output:
bash
v22.11.0Check npm version:
bash
npm --versionExpected output:
bash
10.9.0Why version matters:
MoltBot requires NodeJS 18.0.0 or higher
Version 22.x ensures compatibility with latest features
npm 10.x includes performance improvements and security fixes
If you see "command not found":
bash
# Update your shell's command cache
hash -r
# Or close terminal and reconnect
exit
su - moltbotInstalling Git (Required for MoltBot Installation)
bash
# Install Git version control
sudo apt-get install -y gitWhy Git is necessary:
MoltBot installation script downloads code from GitHub
Skills are distributed through Git repositories
Enables easy updates to latest MoltBot version
Verify Git installation:
bash
git --versionExpected output:
bash
git version 2.43.0Step 5: Installing MoltBot (20 minutes)
Why We're Doing This
Now we're ready to install MoltBot itself. The official installation script automatically handles downloading MoltBot, installing dependencies, and setting up the initial configuration. This is where your AI assistant actually gets installed on your server.
Running the Official Installation Script
CRITICAL: Ensure you're logged in as moltbot user
bash
# Download and run MoltBot installation script
curl -fsSL https://molt.bot/install.sh | bashWhat this command does:
Downloads the official installation script from molt.bot
Executes it with bash shell
Script detects your operating system (Ubuntu 24.04)
Checks for required dependencies (NodeJS, Git)
Downloads MoltBot from GitHub
Installs npm packages and dependencies
Sets up initial configuration files
Installation process output:
bash
[MoltBot Installer]
=====================================
Detecting operating system... Ubuntu 24.04 LTS
Checking for Node.js... Found v22.11.0 ✓
Checking for npm... Found v10.9.0 ✓
Checking for Git... Found v2.43.0 ✓
Downloading MoltBot...
Cloning into '/home/moltbot/.moltbot'...
remote: Enumerating objects: 15420, done.
remote: Counting objects: 100% (2145/2145), done.
remote: Compressing objects: 100% (756/756), done.
remote: Total 15420 (delta 1512), reused 1889 (delta 1389)
Receiving objects: 100% (15420/15420), 8.42 MiB | 12.15 MiB/s, done.
Resolving deltas: 100% (10789/10789), done.
Installing dependencies...
npm install --production
added 423 packages, and audited 424 packages in 45s
89 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
MoltBot installation complete!
Run 'moltbot onboard' to begin setup.Key files and directories created:
bash
/home/moltbot/.moltbot/ # Main MoltBot installation
/home/moltbot/.moltbot/config/ # Configuration files
/home/moltbot/.moltbot/memory/ # Persistent memory storage
/home/moltbot/.moltbot/skills/ # Installed skills/plugins
/home/moltbot/.local/bin/moltbot # Command-line executableVerify installation:
bash
# Check MoltBot command is available
moltbot --versionExpected output:
bash
MoltBot v2.14.0If "command not found" error appears:
bash
# Add MoltBot to your PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Test again
moltbot --versionWhat ~/.bashrc does:
Bash configuration file that runs on every login
PATH variable tells shell where to find commands
Adding ~/.local/bin allows running 'moltbot' from anywhere
Step 6: Configuring MoltBot with Onboarding Wizard (15 minutes)
Why We're Doing This
The onboarding wizard guides you through essential configuration: choosing your AI model, setting up authentication, connecting messaging platforms, and configuring system permissions. This creates your MoltBot's "identity" and determines how it operates.
Starting the Onboarding Process
bash
# Launch interactive onboarding wizard
moltbot onboardWhat this command does:
Starts interactive configuration wizard
Creates initial config.json file
Sets up authentication and model providers
Configures messaging channels
Installs optional skills
Step 6.1: Security Warning and Acknowledgment
You'll see this critical warning:
bash
╔═══════════════════════════════════════════════════════════╗
║ MOLTBOT SECURITY WARNING ║
╠═══════════════════════════════════════════════════════════╣
║ ║
║ MoltBot is a POWERFUL and inherently RISKY tool. ║
║ ║
║ It has FULL ACCESS to: ║
║ • Your file system ║
║ • Shell commands and scripts ║
║ • Connected messaging platforms ║
║ • Email, calendar, and integrated services ║
║ ║
║ UNDERSTAND THE RISKS: ║
║ • Misconfiguration can lead to data loss ║
║ • Exposed instances have leaked credentials ║
║ • Skills can introduce security vulnerabilities ║
║ ║
║ RECOMMENDED SAFETY MEASURES: ║
║ • Run on isolated VPS (you're doing this! ✓) ║
║ • Use separate email/service accounts ║
║ • Configure firewall rules ║
║ • Enable authentication ║
║ • Regularly review permissions ║
║ ║
╚═══════════════════════════════════════════════════════════╝
? I understand the risks and want to continue: (y/N)Type: y and press Enter
Why this warning exists:
MoltBot has caused actual data loss for users
Exposed instances have leaked thousands of API keys
Prompt injection attacks have deleted emails
Supply-chain attacks through malicious skills are possible
Step 6.2: Choosing Onboarding Mode
bash
? Select onboarding mode: (Use arrow keys)
❯ Kickstart (Recommended for beginners)
Manual (Advanced users only)Select: Kickstart
Press: Enter
Difference explained:
Kickstart mode:
Guided step-by-step configuration
Sensible defaults suggested
Helps install common skills
Best for first-time setup
Manual mode:
Assumes you know what you're doing
No safety prompts or confirmations
Requires editing JSON files directly
Risk of misconfiguration
Step 6.3: Selecting AI Model Provider
bash
? Select your primary model provider: (Use arrow keys)
OpenAI
❯ Anthropic
Google AI
OpenRouter
Minimax
Qwen
Local (Ollama)Navigate with arrow keys to Anthropic
Press: Enter
Why Anthropic (Claude) is recommended:
Security advantages:
Claude Opus 4.5 trained specifically to resist prompt injection
Internal testing shows 99% prompt injection resistance
Better at following safety guidelines
More cautious about executing dangerous commands
Performance advantages:
Superior context understanding (200K token window)
Better at multi-step reasoning and planning
More reliable tool usage
Excellent code generation capabilities
Cost considerations:
$3 per million input tokens
$15 per million output tokens
Typical usage: $20-50/month for moderate daily use
Heavy automation users: $100-300/month
Step 6.4: Authentication Method
bash
? How do you want to authenticate with Anthropic? (Use arrow keys)
❯ Anthropic API Key (Recommended)
Anthropic Token (Claude Pro/Max subscription)Select: Anthropic API Key
Press: Enter
CRITICAL WARNING:
bash
╔═══════════════════════════════════════════════════════════╗
║ IMPORTANT: DO NOT USE SUBSCRIPTION TOKEN ║
╠═══════════════════════════════════════════════════════════╣
║ ║
║ Using your Claude Pro/Max subscription token violates ║
║ Anthropic's Terms of Service. ║
║ ║
║ ❌ WRONG: Using personal subscription token ║
║ ✓ CORRECT: Using Anthropic API Key ║
║ ║
║ Consequences of using subscription token: ║
║ • Account termination ║
║ • Potentially much more expensive ║
║ • Against ToS ║
║ ║
╚═══════════════════════════════════════════════════════════╝Getting your Anthropic API Key:
Open browser and go to: https://console.anthropic.com/
Sign in or create account
Click "API Keys" in left sidebar
Click "Create Key" button
Name your key:
MoltBot VPS ProductionCopy the API key (starts with
sk-ant-)
Example API key format:
bash
sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxPaste your API key when prompted:
bash
? Enter your Anthropic API key:
sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSecurity note: The key won't display as you paste (security feature). Press Enter after pasting.
Key validation:
bash
Validating API key... ✓
API key acceptedIf validation fails:
bash
✗ Invalid API key. Please check and try again.Common issues:
Extra spaces before or after the key
Incomplete key (missing characters)
Expired or revoked key
Wrong API key type (using OpenAI key for Anthropic)
Step 6.5: Selecting Default Model
bash
? Select default model: (Use arrow keys)
❯ anthropic/claude-opus-4-5 (Highest quality, slowest, most expensive)
anthropic/claude-sonnet-4-5 (Balanced quality/speed/cost)
anthropic/claude-haiku-4-5 (Fastest, cheapest, lower quality)Recommended for most users: anthropic/claude-opus-4-5
Press: Enter
Model comparison:
Claude Opus 4.5 (Best for MoltBot):
Input: $3 per million tokens
Output: $15 per million tokens
Best reasoning capabilities
Highest quality code generation
Most resistant to prompt injection
Typical cost: $30-70/month
Claude Sonnet 4.5 (Budget Option):
Input: $0.60 per million tokens
Output: $3 per million tokens
Good balance of quality and cost
Suitable for simple tasks
Typical cost: $10-25/month
Claude Haiku 4.5 (Not Recommended):
Input: $0.15 per million tokens
Output: $0.75 per million tokens
Fastest responses
Lower quality reasoning
May make mistakes on complex tasks
Real-world usage example:
bash
# Example API costs for one day of moderate use
User sends: "Summarize my email, draft 3 responses, organize files"
Opus 4.5 cost: ~$2.50/day = ~$75/month
Sonnet 4.5 cost: ~$0.50/day = ~$15/month
Haiku 4.5 cost: ~$0.12/day = ~$3.60/monthStep 7: Telegram Bot Setup (10 minutes)
Why We're Doing This
Telegram provides the communication channel between you and MoltBot. Instead of accessing a web interface or terminal, you'll send normal text messages to your bot through the Telegram app on your phone or computer, making it incredibly convenient to interact with your AI assistant from anywhere.
Step 7.1: Selecting Communication Channel
bash
? Which messaging platform do you want to connect? (Use arrow keys)
❯ Telegram Bot API (Easiest setup, recommended)
WhatsApp (Requires phone number)
Discord Bot
Slack App
Signal (Requires phone linking)
iMessage (macOS only)
Skip for nowSelect: Telegram Bot API
Press: Enter
Why Telegram is recommended for beginners:
Advantages:
Free bot creation through BotFather
No phone number required
Works on all platforms (iOS, Android, Desktop, Web)
Instant message delivery
Support for files, images, and rich media
Easy pairing process
Disadvantages of alternatives:
WhatsApp: Requires dedicated phone number, more complex setup
Discord: Requires creating Discord server and application
Slack: Requires workspace admin access
Signal: Phone number required, limited API
iMessage: macOS only, complex configuration
Step 7.2: Creating a Telegram Bot
Open Telegram app (on phone or computer)
Search for: @BotFather (official Telegram bot creation tool)
Start conversation:
/startBotFather responds:
I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual.
You can control me by sending these commands:
/newbot - create a new bot
/mybots - edit your botsCreate new bot:
/newbotBotFather asks for bot name:
Alright, a new bot. How are we going to call it? Please choose a name for your bot.Enter a name for your bot:
My Personal MoltBot AssistantWhy the name matters:
This is the display name users see
Can be changed later
Helps you identify this specific bot
BotFather asks for username:
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.Enter a unique username:
my_moltbot_2026_botUsername requirements:
Must end with
botCan only contain letters, numbers, and underscores
Must be unique across all Telegram
Cannot be changed later
If username is taken:
Sorry, this username is already taken. Please try another one.Try alternative usernames:
Add your name:
john_moltbot_2026_botAdd random numbers:
moltbot_47582_botUse current timestamp:
moltbot_jan2026_bot
Success message:
Done! Congratulations on your new bot. You will find it at t.me/my_moltbot_2026_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.
Use this token to access the HTTP API:
6234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
Keep your token secure and store it safely, it can be used by anyone to control your bot.CRITICAL: Copy the bot token:
6234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawToken format explained:
First part: Bot ID (6234567890)
Separator: Colon (:)
Second part: Secret authentication token
Security warning: This token grants complete control of your bot. Anyone with this token can:
Send messages as your bot
Read all messages sent to your bot
Change bot settings
Access conversations
Never share this token publicly!
Step 7.3: Configuring Telegram in MoltBot
Return to your VPS terminal
MoltBot asks for bot token:
bash
? Enter your Telegram Bot Token:Paste the token you copied:
bash
6234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawPress: Enter
Token validation:
bash
Connecting to Telegram API... ✓
Bot username: @my_moltbot_2026_bot
Bot name: My Personal MoltBot Assistant
Token validated successfully!MoltBot now configures Telegram integration:
bash
Setting up Telegram channel...
Registering webhook handlers...
Configuring message routing...
Telegram integration complete! ✓Step 8: Installing Skills and Configuring System Access (15 minutes)
Why We're Doing This
Skills are plugins that extend MoltBot's capabilities beyond basic conversation. They allow your bot to perform specific tasks like browser automation, image generation, file management, and integration with external services. This step determines what your MoltBot can actually do.
Step 8.1: Skills Configuration Prompt
bash
? Do you want to configure skills? (Y/n)Type: Y and press Enter
What skills are:
Modular plugins that add specific capabilities
Installed from MoltHub (official skill marketplace)
Can be community-built or official
Extend MoltBot beyond basic chat functionality
Security consideration: Each skill requests specific permissions. Review carefully before installing.
Step 8.2: Homebrew Configuration (macOS/Linux)
bash
? Do you want to enable Homebrew package management?Type: Y and press Enter
What Homebrew does:
Package manager for installing software
Allows MoltBot to install CLI tools
Required for some advanced skills
Provides software dependency management
On Ubuntu VPS, this installs Linuxbrew
Installation process:
bash
Installing Homebrew...
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
==> This script will install:
/home/linuxbrew/.linuxbrew/bin/brew
/home/linuxbrew/.linuxbrew/share/doc/homebrew
Press RETURN to continue or any other key to abortPress: Enter
Installation time: 5-10 minutes
Step 8.3: Package Manager Selection
bash
? Select your preferred package manager: (Use arrow keys)
❯ npm (Recommended)
yarn
pnpmSelect: npm
Press: Enter
Why npm is recommended:
Pre-installed with NodeJS
Most MoltBot skills use npm
Largest package ecosystem
Best compatibility
Step 8.4: Available Skills Selection
bash
? Select skills to install: (Press <space> to select, <enter> to continue)
❯◯ ClawdHub (Official skill manager and marketplace)
◯ GG (Google Workspace CLI integration)
◯ Nano Banana Pro (AI image generation via Gemini)
◯ Nano PDF (PDF processing and analysis)
◯ Oracle (Database connection skills)
◯ Browser Automation (Puppeteer-based web control)
◯ File System Advanced (Enhanced file operations)
◯ Email Integration (Gmail/Outlook)
◯ Calendar Sync (Google Calendar)
◯ Code Execution (Safe code runner)Recommended for beginners:
✓ ClawdHub (Essential - skill marketplace access)
✓ Nano Banana Pro (Popular - AI image generation)
✓ Browser Automation (Useful for web tasks)
How to select skills:
Use arrow keys to highlight skill
Press Spacebar to toggle selection (◯ becomes ◉)
Repeat for each skill you want
Press Enter when finished
Example selection:
bash
? Select skills to install:
❯◉ ClawdHub
◯ GG
◉ Nano Banana Pro
◯ Nano PDF
◯ Oracle
◉ Browser Automation
◯ File System Advanced
◯ Email IntegrationPress: Enter
Installation process:
bash
Installing selected skills...
[1/3] Installing ClawdHub...
Downloading from https://hub.molt.bot/skills/clawdhub
npm install @moltbot/clawdhub
✓ ClawdHub installed successfully
[2/3] Installing Nano Banana Pro...
Downloading from https://hub.molt.bot/skills/nanobanana
npm install @moltbot/nano-banana-pro
✓ Nano Banana Pro installed successfully
[3/3] Installing Browser Automation...
Downloading from https://hub.molt.bot/skills/browser
npm install @moltbot/browser-automation
Downloading Chromium browser... (125 MB)
✓ Browser Automation installed successfully
All skills installed successfully!Step 8.5: Skill API Key Configuration
For skills requiring external services:
bash
╔═══════════════════════════════════════════════════════════╗
║ SKILL API KEY CONFIGURATION ║
╚═══════════════════════════════════════════════════════════╝
Nano Banana Pro requires a Gemini API key for image generation.
? Do you want to configure Gemini API key now? (Y/n)Option 1: Configure now (Recommended)
Type: Y and press Enter
Getting Gemini API key:
Visit: https://aistudio.google.com/
Click "Get API Key"
Create new key or use existing
Copy the API key
Example Gemini API key:
bash
AIzaSyB-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEnter the API key:
bash
? Enter your Gemini API key:
AIzaSyB-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxOption 2: Skip for now
Type: n and press Enter
Configure later with:
bash
moltbot configure --section skillsContinue through remaining skill configurations:
bash
? Configure Google Workspace API key? (y/N) n
? Configure OpenAI API key? (y/N) n
? Configure 11 Labs API key? (y/N) nSkip skills you don't need - you can always add API keys later
Step 8.6: Hooks Configuration
bash
? Do you want to enable hooks? Hooks allow MoltBot to automatically
perform actions at specific triggers (cron schedules, events, etc.)
Examples:
- Daily morning brief at 8 AM
- Monitor email every 10 minutes
- Weekly file cleanup
? Enable hooks? (y/N)For beginners: Type n and press Enter
Why skip hooks initially:
Can configure later after understanding MoltBot
Prevents accidental automated actions
Reduces complexity during first setup
Safer to enable after testing manual commands
Advanced users can enable hooks for:
Scheduled reminders
Automated monitoring
Periodic reports
Proactive notifications
Step 9: Launching MoltBot (5 minutes)
Why We're Doing This
Now we're ready to bring your MoltBot online! This step starts the gateway service (the "front door" that handles messaging connections) and makes your AI assistant accessible through Telegram.
Step 9.1: Choosing Launch Mode
bash
? How do you want to launch MoltBot? (Use arrow keys)
❯ Hatch into TUI (Terminal + Web UI)
Hatch into Web UI only
Hatch into background daemon
Configure later (skip for now)Select: Hatch into TUI
Press: Enter
Launch mode explained:
Terminal UI (TUI):
Interactive terminal interface
Real-time message viewing
Live logging and debugging
Web dashboard access
Best for initial testing
Web UI only:
Browser-based control panel
Graphical interface
No terminal required
Good for remote management
Background daemon:
Runs silently in background
No interactive output
Auto-starts on boot
Production deployment mode
Step 9.2: Initial Personalization
MoltBot asks for identity configuration:
bash
╔═══════════════════════════════════════════════════════════╗
║ MOLTBOT IDENTITY CONFIGURATION ║
╚═══════════════════════════════════════════════════════════╝
Let's give your AI assistant a personality!
? What should I call you? (Your name)Enter your name:
bash
AlexMoltBot acknowledges:
bash
Got it! I'll call you Alex.
? What should you call me? (My name/identity)Choose a name for your MoltBot:
bash
NexaExamples of good bot names:
Nexa (short, futuristic)
Atlas (strong, reliable)
Sage (wise, thoughtful)
Orbit (tech-focused)
Nova (bright, energetic)
MoltBot responds:
bash
Perfect! I'm Nexa, your AI assistant.
? What timezone are you in? (Dropdown menu)Select your timezone using arrow keys:
bash
❯ America/New_York
America/Los_Angeles
America/Chicago
Europe/London
Europe/Paris
Asia/Tokyo
[type to search...]Why timezone matters:
Scheduled tasks run at correct local time
Time-aware responses ("good morning" at proper times)
Accurate logging timestamps
Calendar integration accuracy
Final personality configuration:
bash
? What's your preferred communication style?
❯ Professional (formal, business-appropriate)
Friendly (casual, conversational)
Concise (brief, to-the-point)
Technical (detailed, specific)
Custom (define your own)Select your preference and press Enter
Step 9.3: MoltBot Launches
bash
╔═══════════════════════════════════════════════════════════╗
║ MOLTBOT IS HATCHING... ║
╚═══════════════════════════════════════════════════════════╝
Starting gateway service...
Loading configuration...
Initializing AI model connection...
Connecting to Telegram...
Loading skills...
Starting web dashboard...
✓ Gateway running on http://localhost:8080
✓ Telegram connected (@my_moltbot_2026_bot)
✓ Web UI available at http://localhost:8080/ui
✓ Skills loaded: 3 active
╔═══════════════════════════════════════════════════════════╗
║ MOLTBOT IS READY! ║
╠═══════════════════════════════════════════════════════════╣
║ ║
║ Your AI assistant is now online and waiting for ║
║ your first message! ║
║ ║
║ Send a message to @my_moltbot_2026_bot on Telegram ║
║ to begin your conversation. ║
║ ║
║ Web UI: http://localhost:8080/ui ║
║ ║
╚═══════════════════════════════════════════════════════════╝
[Nexa] Waiting for your message...Terminal UI shows real-time activity:
bash
┌──────────────────────────────────────────────────────────┐
│ MoltBot Terminal Interface │
├──────────────────────────────────────────────────────────┤
│ │
│ Status: ● ONLINE │
│ Model: Claude Opus 4.5 │
│ Gateway: http://localhost:8080 │
│ │
│ [14:32:15] Gateway started │
│ [14:32:16] Telegram connected │
│ [14:32:17] Skills loaded: ClawdHub, Nano Banana, Browser│
│ [14:32:18] Ready for commands │
│ │
│ Logs: │
│ ───── │
│ │
└──────────────────────────────────────────────────────────┘
Press Ctrl+C to stop gatewayStep 10: Telegram Pairing and First Message (5 minutes)
Why We're Doing This
Your MoltBot is running, but it needs to verify that YOU are the authorized user before responding. This pairing process creates a secure connection between your Telegram account and your MoltBot instance, preventing unauthorized access.
Step 10.1: Opening Your Telegram Bot
On your phone or computer:
Open Telegram app
Search for your bot:
@my_moltbot_2026_botClick on the bot to open conversation
Click "START" button at bottom
Bot sends pairing message:
🤖 MoltBot Access Node
Hey there! I need to pair with you before we can start working together.
📱 Your Telegram User ID: 123456789
🔐 Pairing Code: MB-2026-7X9K-P4L2
This pairing code is unique to you. To complete setup:
1. Copy the pairing code above
2. Provide it to your MoltBot administrator
3. Wait for approval
Security Note: Never share this code with anyone else!What this message contains:
Telegram User ID:
Unique identifier for your Telegram account
Not secret, but needed for pairing
Example:
123456789
Pairing Code:
Temporary security code
Valid for 15 minutes
Format:
MB-YYYY-XXXX-XXXXUsed to verify authorization
Step 10.2: Approving Pairing on VPS
Return to your VPS terminal
You'll see pairing request in logs:
bash
[14:35:22] Telegram pairing request received
[14:35:22] User ID: 123456789
[14:35:22] Username: @alex_telegram
[14:35:22] Pairing code: MB-2026-7X9K-P4L2
[14:35:22] Waiting for approval...Approve the pairing:
Method 1: Direct approval command:
bash
# In separate terminal (Ctrl+Shift+T for new tab)
moltbot pairing approve telegram MB-2026-7X9K-P4L2Method 2: Interactive approval:
bash
# List pending pairing requests
moltbot pairing list telegramOutput:
bash
Pending Telegram Pairing Requests:
─────────────────────────────────
User ID: 123456789
Username: @alex_telegram
Code: MB-2026-7X9K-P4L2
Requested: 2 minutes agoApprove specific request:
bash
moltbot pairing approve telegram 123456789Approval confirmation:
bash
✓ Pairing approved for user 123456789
✓ Telegram connection established
✓ User @alex_telegram authorizedBack in Telegram, bot sends confirmation:
✅ Pairing Successful!
Hey Alex! We're now connected. I'm Nexa, your AI assistant.
I'm ready to help with:
- File management and organization
- Email and calendar tasks
- Code generation and debugging
- Web research and browsing
- Image generation
- And much more!
Try sending me a message to test it out!
Type 'help' to see available commands.Step 10.3: Sending Your First Message
In Telegram, send a test message:
Hi Nexa! Can you introduce yourself?Watch the terminal on your VPS:
bash
[14:37:45] Telegram message received
[14:37:45] User: @alex_telegram
[14:37:45] Message: "Hi Nexa! Can you introduce yourself?"
[14:37:45] Processing with Claude Opus 4.5...
[14:37:47] Generating response...
[14:37:49] Response sent to TelegramBot responds in Telegram:
Hi Alex! 👋
I'm Nexa, your personal AI assistant running on your VPS. Think of me as your digital operative - I'm here 24/7 to help automate tasks, manage information, and handle complex workflows.
Here's what makes me different from other AI assistants:
**What I Can Do:**
- Access and manage files on this server
- Execute commands and scripts
- Browse the web and gather information
- Generate images using AI
- Remember our entire conversation history
- Work proactively on scheduled tasks
- Integrate with your email, calendar, and services
**How I'm Built:**
- Running on Ubuntu 24.04 VPS
- Powered by Claude Opus 4.5
- Self-hosted for privacy
- Skills: ClawdHub, Nano Banana Pro, Browser Automation
**Current Status:**
- Server: Online ✓
- Model: Claude Opus 4.5 ✓
- Skills: 3 active ✓
- Memory: Persistent ✓
I learn from every conversation we have, so feel free to give me context about your preferences, workflows, and goals. The more I know about you, the better I can assist!
What would you like help with today?Success! Your MoltBot is fully operational!
Step 11: Essential Security Hardening (CRITICAL - 30 minutes)
Why We're Doing This
At this point, your MoltBot works - but it's dangerously insecure. Without proper security hardening, your VPS is exposed to attackers who can steal your API keys, read your conversations, and potentially compromise your entire digital infrastructure. This step is absolutely critical.
Real-world consequences of skipping security:
800+ MoltBot instances found exposed on internet
Hundreds leaked API keys worth thousands of dollars
Private conversations exposed publicly
Attackers used compromised bots as backdoors
Signal accounts paired to stranger's servers
Step 11.1: Configuring UFW Firewall
bash
# Install UFW (Uncomplicated Firewall) if not already installed
sudo apt-get install -y ufwWhat this does: Installs Ubuntu's user-friendly firewall management tool
Default policy: Deny all incoming traffic
bash
# Set default policies
sudo ufw default deny incoming
sudo ufw default allow outgoingBreaking down these commands:
sudo ufw default deny incoming:
Blocks ALL incoming connection attempts by default
Only explicitly allowed ports can receive traffic
Prevents unauthorized access to MoltBot gateway
Critical security foundation
sudo ufw default allow outgoing:
Allows ALL outgoing connections
Necessary for MoltBot to contact APIs
Enables Telegram message sending
Required for skill installations
Allow SSH connections (CRITICAL):
bash
# Allow SSH on port 22
sudo ufw allow 22/tcpWhy this is critical:
Without this rule, you'll lose SSH access
You'll be locked out of your own server
Would require VPS provider console to recover
IMPORTANT: Always allow SSH before enabling the firewall!
Allow Telegram webhook (if using):
bash
# If you configured Telegram webhooks instead of polling
sudo ufw allow 8443/tcpEnable the firewall:
bash
# Activate firewall rules
sudo ufw enableWarning message:
bash
Command may disrupt existing ssh connections. Proceed with operation (y|n)?Type: y and press Enter
Confirmation:
bash
Firewall is active and enabled on system startupVerify firewall status:
bash
sudo ufw status verboseExpected output:
bash
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)Step 11.2: Securing MoltBot Gateway
CRITICAL: Never expose MoltBot gateway to public internet
Edit MoltBot configuration:
bash
# Open configuration file
nano ~/.moltbot/config.jsonLocate gateway configuration section:
json
{
"gateway": {
"host": "0.0.0.0",
"port": 8080,
"authentication": {
"enabled": false,
"username": "",
"password": ""
}
}
}What 0.0.0.0 means:
Binds to all network interfaces
Makes gateway accessible from internet
EXTREMELY DANGEROUS without authentication
Anyone can access web UI and configuration
Change to localhost only:
json
{
"gateway": {
"host": "127.0.0.1",
"port": 8080,
"authentication": {
"enabled": true,
"username": "admin",
"password": "CHANGE_THIS_TO_STRONG_PASSWORD"
}
}
}Breaking down changes:
"host": "127.0.0.1":
Binds only to localhost (loopback interface)
Only accessible from within the server
Not exposed to internet
Requires SSH tunnel for remote access
"enabled": true:
Activates authentication requirement
Protects against unauthorized access
Even with SSH tunnel, requires password
"username": "admin":
Web UI login username
Can be changed to anything you prefer
"password": "...":
CRITICAL: Change to strong password
Minimum 20 characters
Mix of uppercase, lowercase, numbers, symbols
Example strong password:
bash
Mb@WebUI2026!Secure#Gateway$789Save and exit:
Press
Ctrl+XPress
Yto confirmPress
Enterto save
Restart MoltBot gateway:
bash
moltbot gateway restartVerification:
bash
# Try accessing from external IP (should fail)
curl http://YOUR_VPS_IP:8080
# Output: Connection refused (good!)Step 11.3: Securing Credential Storage
Critical vulnerability: MoltBot stores credentials in plaintext
Location of sensitive files:
bash
~/.moltbot/config.json # Contains API keys
~/.moltbot/memory/*.md # Contains conversation history
~/.moltbot/skills/*/config.json # Contains skill API keysSet proper file permissions:
bash
# Make config directory readable only by moltbot user
chmod 700 ~/.moltbot
chmod 700 ~/.moltbot/config
chmod 700 ~/.moltbot/memory
chmod 700 ~/.moltbot/skills
# Make config files readable only by owner
chmod 600 ~/.moltbot/config.json
chmod 600 ~/.moltbot/skills/*/config.jsonUnderstanding permission codes:
chmod 700 explained:
7 = Owner: Read (4) + Write (2) + Execute (1)
0 = Group: No permissions
0 = Others: No permissions
chmod 600 explained:
6 = Owner: Read (4) + Write (2)
0 = Group: No permissions
0 = Others: No permissions
Why this matters:
Prevents other users on system from reading files
Protects against malware reading credentials
Limits damage if VPS is compromised
Verify permissions:
bash
ls -la ~/.moltbot/Expected output:
bash
drwx------ 5 moltbot moltbot 4096 Jan 30 14:45 .
drwxr-xr-x 8 moltbot moltbot 4096 Jan 30 14:30 ..
drwx------ 2 moltbot moltbot 4096 Jan 30 14:40 config
-rw------- 1 moltbot moltbot 2847 Jan 30 14:42 config.json
drwx------ 3 moltbot moltbot 4096 Jan 30 14:41 memory
drwx------ 4 moltbot moltbot 4096 Jan 30 14:41 skillsFirst column breakdown:
d= directoryrwx------= owner read/write/execute, no permissions for others-rw-------= owner read/write, no permissions for others
Step 11.4: Implementing Fail2Ban (Advanced Protection)
Install Fail2Ban:
bash
sudo apt-get install -y fail2banWhat Fail2Ban does:
Monitors log files for suspicious activity
Automatically bans IP addresses after failed login attempts
Prevents brute-force attacks
Protects SSH from automated attacks
Create Fail2Ban jail configuration:
bash
# Create custom jail configuration
sudo nano /etc/fail2ban/jail.localAdd SSH protection:
bash
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600Configuration explained:
enabled = true:
Activates this jail
Starts monitoring immediately
port = 22:
Monitor SSH port
Standard SSH port number
maxretry = 3:
Allow 3 failed attempts
4th failure triggers ban
Balance between security and usability
bantime = 3600:
Ban duration: 3600 seconds (1 hour)
IP blocked for 1 hour after triggering
Can increase to 86400 (24 hours) for stricter security
findtime = 600:
Time window: 600 seconds (10 minutes)
3 failures within 10 minutes = ban
Resets after 10 minutes
Save and restart Fail2Ban:
bash
# Save: Ctrl+X, Y, Enter
# Restart Fail2Ban
sudo systemctl restart fail2ban
# Enable automatic startup
sudo systemctl enable fail2ban
# Verify status
sudo fail2ban-client statusExpected output:
bash
Status
|- Number of jail: 1
`- Jail list: sshdCheck SSH jail specifically:
bash
sudo fail2ban-client status sshdOutput:
bash
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:Step 11.5: Regular Security Audits
Create security audit script:
bash
# Create audit script
nano ~/security-audit.shAdd audit commands:
bash
#!/bin/bash
echo "=== MOLTBOT SECURITY AUDIT ==="
echo "Date: $(date)"
echo ""
echo "1. Checking file permissions..."
ls -la ~/.moltbot/config.json
ls -la ~/.moltbot/
echo ""
echo "2. Checking firewall status..."
sudo ufw status
echo ""
echo "3. Checking for exposed ports..."
sudo netstat -tulpn | grep LISTEN
echo ""
echo "4. Checking Fail2Ban status..."
sudo fail2ban-client status
echo ""
echo "5. Checking for unauthorized API key access..."
grep -r "sk-ant-" /var/log/ 2>/dev/null || echo "No API keys in logs (good!)"
echo ""
echo "6. Checking disk usage..."
df -h /home/moltbot
echo ""
echo "=== AUDIT COMPLETE ==="Make script executable:
bash
chmod +x ~/security-audit.shRun audit:
bash
./security-audit.shSchedule weekly audits:
bash
# Add to crontab
crontab -eAdd this line:
bash
0 9 * * 1 /home/moltbot/security-audit.sh > /home/moltbot/audit-$(date +\%Y\%m\%d).logWhat this does:
Runs every Monday at 9:00 AM
Generates timestamped audit log
Keeps audit history for review
Step 12: Making MoltBot Persistent (10 minutes)
Why We're Doing This
Currently, if your VPS reboots or you log out, MoltBot stops running. For a true 24/7 AI assistant, we need MoltBot to start automatically when the server boots and keep running in the background as a system service.
Creating Systemd Service File
bash
# Create systemd service file
sudo nano /etc/systemd/system/moltbot.serviceAdd service configuration:
bash
[Unit]
Description=MoltBot AI Assistant Gateway
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=moltbot
WorkingDirectory=/home/moltbot
Environment="PATH=/home/moltbot/.local/bin:/usr/local/bin:/usr/bin"
ExecStart=/home/moltbot/.local/bin/moltbot gateway start
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=moltbot
[Install]
WantedBy=multi-user.targetUnderstanding the service file:
[Unit] Section:
Description:
Human-readable service name
Appears in systemctl status
After=network-online.target:
Don't start until network is ready
Ensures API connections work
Prevents startup failures
Wants=network-online.target:
Request network to be online
Soft dependency (won't fail if unavailable)
[Service] Section:
Type=simple:
Service runs in foreground
Systemd tracks main process
Standard service type
User=moltbot:
Run as moltbot user, not root
Security best practice
Limits damage from compromise
WorkingDirectory=/home/moltbot:
Set working directory
Ensures relative paths work
Config files found correctly
Environment="PATH=...":
Define PATH variable
Includes moltbot command location
Ensures binary is found
ExecStart=...:
Command to start service
Full path to moltbot binary
gateway start subcommand
Restart=always:
Automatically restart if crashes
Ensures 24/7 operation
Critical for reliability
RestartSec=10:
Wait 10 seconds before restart
Prevents rapid restart loops
Gives system time to recover
StandardOutput=journal:
Log stdout to systemd journal
Viewable with journalctl
Centralized logging
StandardError=journal:
Log stderr to systemd journal
Captures error messages
Debugging support
[Install] Section:
WantedBy=multi-user.target:
Start service at boot
Multi-user mode (normal operation)
Ensures automatic startup
Save and exit: Ctrl+X, Y, Enter
Enabling and Starting the Service
Reload systemd configuration:
bash
# Tell systemd about new service file
sudo systemctl daemon-reloadWhat this does:
Reloads service definitions
Recognizes new moltbot.service
Required after creating service files
Enable auto-start on boot:
bash
# Enable service to start at boot
sudo systemctl enable moltbotOutput:
bash
Created symlink /etc/systemd/system/multi-user.target.wants/moltbot.service → /etc/systemd/system/moltbot.serviceWhat this means:
Service will start automatically on boot
Runs every time VPS restarts
24/7 operation guaranteed
Start the service now:
bash
# Start MoltBot service
sudo systemctl start moltbotCheck service status:
bash
# View service status
sudo systemctl status moltbotExpected healthy output:
bash
● moltbot.service - MoltBot AI Assistant Gateway
Loaded: loaded (/etc/systemd/system/moltbot.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2026-01-30 15:23:45 UTC; 30s ago
Main PID: 12847 (node)
Tasks: 11 (limit: 4915)
Memory: 125.3M
CPU: 2.543s
CGroup: /system.slice/moltbot.service
└─12847 /usr/bin/node /home/moltbot/.local/bin/moltbot gateway start
Jan 30 15:23:45 vps-12345 systemd[1]: Started MoltBot AI Assistant Gateway.
Jan 30 15:23:46 vps-12345 moltbot[12847]: [INFO] Gateway starting on 127.0.0.1:8080
Jan 30 15:23:47 vps-12345 moltbot[12847]: [INFO] Telegram connected: @my_moltbot_2026_bot
Jan 30 15:23:48 vps-12345 moltbot[12847]: [INFO] Skills loaded: 3 active
Jan 30 15:23:48 vps-12345 moltbot[12847]: [INFO] MoltBot readyStatus indicators explained:
Active: active (running):
Service is running successfully
Not crashed or stopped
Ready to process messages
enabled; vendor preset: enabled:
Will start on boot
Persistent across reboots
Main PID: 12847:
Process ID of running service
Unique identifier
Used for troubleshooting
Viewing real-time logs:
bash
# Follow logs in real-time
sudo journalctl -u moltbot -fWhat you'll see:
bash
Jan 30 15:25:12 moltbot[12847]: [INFO] Telegram message received from @alex_telegram
Jan 30 15:25:12 moltbot[12847]: [INFO] Message: "test message"
Jan 30 15:25:13 moltbot[12847]: [INFO] Processing with Claude Opus 4.5
Jan 30 15:25:15 moltbot[12847]: [INFO] Response sent to TelegramPress Ctrl+C to stop following logs
Service Management Commands
Stopping the service:
bash
sudo systemctl stop moltbotRestarting the service:
bash
sudo systemctl restart moltbotReloading configuration (without restart):
bash
# Edit config.json, then:
sudo systemctl reload moltbotViewing full logs:
bash
# Last 100 lines
sudo journalctl -u moltbot -n 100
# Last hour
sudo journalctl -u moltbot --since "1 hour ago"
# Today's logs
sudo journalctl -u moltbot --since todayChecking if service is enabled:
bash
sudo systemctl is-enabled moltbotOutput should be: enabled
Testing auto-start:
bash
# Reboot VPS to test
sudo rebootAfter reboot, SSH back in and check:
bash
sudo systemctl status moltbotShould show: active (running) without manual start
Step 13: Testing Your MoltBot (15 minutes)
Why We're Doing This
Now that everything is configured and secured, let's thoroughly test your MoltBot to ensure all features work correctly. This testing phase helps identify any configuration issues before relying on your AI assistant for critical tasks.
Basic Communication Tests
Test 1: Simple greeting
Send to Telegram bot:
Hello! Are you working?Expected response:
Yes, I'm working perfectly! I'm online and ready to help. What can I do for you today?What this tests:
Telegram connection working
Message routing functional
AI model responding
Basic text processing
Test 2: Context retention
Send message 1:
My favorite color is blue.Wait for response, then send message 2:
What's my favorite color?Expected response:
Your favorite color is blue, as you just told me!What this tests:
Persistent memory
Context understanding
Conversation history
Memory retrieval
Test 3: System information
Send:
What system are you running on?Expected response:
I'm running on:
- Operating System: Ubuntu 24.04 LTS
- Server Type: VPS (Virtual Private Server)
- AI Model: Claude Opus 4.5 by Anthropic
- Platform: MoltBot (formerly ClawdBot)
- Location: /home/moltbot on your VPS
Would you like more detailed system information?What this tests:
System awareness
Configuration access
Self-knowledge
File System Tests
Test 4: List files
Send:
Can you list the files in your home directory?Expected response:
Here are the files in /home/moltbot:
Directories:
- .moltbot/ (MoltBot configuration and data)
- .npm/ (npm package cache)
- .local/ (local binaries and data)
Files:
- .bashrc (bash configuration)
- .profile (login profile)
- security-audit.sh (security audit script)
Total: 3 directories, 3 filesWhat this tests:
File system access
Shell command execution
Directory navigation
Test 5: Create test file
Send:
Create a file called test.txt with the content "Hello from MoltBot!"Expected response:
✓ Created file: /home/moltbot/test.txt
Content:
Hello from MoltBot!
The file has been created successfully!What this tests:
File creation capability
Write permissions
File system operations
Verify file exists:
bash
# On your VPS terminal
cat ~/test.txtShould output:
bash
Hello from MoltBot!Skill Tests
Test 6: ClawdHub skill (if installed)
Send:
Search ClawdHub for available skills related to emailExpected response:
I found several email-related skills on ClawdHub:
1. **Gmail Integration Pro**
- Description: Full Gmail API integration with filters and rules
- Downloads: 15,234
- Rating: 4.8/5
2. **Email Parser**
- Description: Extract structured data from emails
- Downloads: 8,967
- Rating: 4.6/5
3. **Inbox Zero Assistant**
- Description: Automated email management and cleanup
- Downloads: 6,543
- Rating: 4.7/5
Would you like me to install any of these?What this tests:
ClawdHub connection
Skill marketplace access
Search functionality
Test 7: Image generation (if Nano Banana Pro installed)
Send:
Generate an image of a futuristic city at sunsetExpected response:
🎨 Generating image...
[After 10-15 seconds, image appears]
✓ Image generated successfully!
Description: A futuristic city skyline at sunset, featuring tall glass buildings with orange and pink reflections, flying vehicles, and a vibrant sky.
Model: Gemini 2.0 Flash
Resolution: 1024x1024What this tests:
Gemini API integration
Image generation skill
External API calls
Media handling
Error Handling Tests
Test 8: Invalid command
Send:
Delete all system filesExpected response:
⚠️ I cannot and will not perform that action.
Deleting system files would:
- Destroy the operating system
- Make the server unusable
- Cause catastrophic data loss
- Violate safety constraints
I'm designed to be helpful and safe. I won't execute commands that could cause serious harm.
Is there something specific you're trying to accomplish? I can suggest safe alternatives.What this tests:
Safety constraints
Harmful action prevention
Ethical guidelines
Refusal mechanisms
Test 9: Resource-intensive task
Send:
Calculate the first 100 digits of piExpected response:
The first 100 digits of pi (π) are:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
This is a mathematical constant representing the ratio of a circle's circumference to its diameter.
Would you like me to explain any properties of pi?What this tests:
Computational tasks
Mathematical processing
Response accuracy
Performance Tests
Test 10: Concurrent requests
Send three messages quickly:
Message 1: What's the weather like?
Message 2: Tell me a joke
Message 3: Calculate 15 * 234Expected: All three messages receive responses
What this tests:
Concurrent message handling
Queue processing
No message loss
Stable operation
Test 11: Long conversation
Send 10-15 messages back and forth
Then send:
Summarize our entire conversationExpected: Coherent summary of all messages
What this tests:
Memory limits
Context window handling
Long conversation support
System Status Commands
Test 12: Status command
Send:
/statusExpected response:
📊 MoltBot System Status
🟢 Online - Running smoothly
System Information:
- Uptime: 2 hours, 34 minutes
- Model: Claude Opus 4.5
- Gateway: 127.0.0.1:8080
- Platform: MoltBot v2.14.0
Skills Active: 3
- ClawdHub
- Nano Banana Pro
- Browser Automation
Memory Usage: 145 MB / 8 GB
Disk Usage: 2.4 GB / 100 GB
API Usage Today:
- Tokens consumed: 234,567
- Estimated cost: $3.42
- Requests: 89
Last message: 12 seconds agoWhat this tests:
Native commands
System monitoring
Resource tracking
Troubleshooting Common Test Failures
If bot doesn't respond:
bash
# Check service status
sudo systemctl status moltbot
# Check logs for errors
sudo journalctl -u moltbot -n 50
# Verify Telegram connection
moltbot doctorIf responses are slow:
bash
# Check system resources
free -h
top
# Check API connectivity
ping -c 4 api.anthropic.comIf skills don't work:
bash
# List installed skills
moltbot skills list
# Check skill status
moltbot skills status
# Reinstall problematic skill
moltbot skills install <skill-name>Advanced Configuration: Customization and Optimization
Configuring Custom Skills
Installing additional skills from ClawdHub:
bash
# Search for skills
moltbot skills search "keyword"
# Install specific skill
moltbot skills install <skill-name>
# View installed skills
moltbot skills list
# Remove skill
moltbot skills remove <skill-name>Memory Management
Viewing memory contents:
bash
# Check memory files
ls -lh ~/.moltbot/memory/
# View specific conversation
cat ~/.moltbot/memory/telegram-123456789.mdClearing old conversations:
bash
# Archive conversations older than 30 days
find ~/.moltbot/memory/ -name "*.md" -mtime +30 -exec mv {} ~/.moltbot/archive/ \;Performance Optimization
Optimizing for lower costs:
json
{
"models": {
"default": "anthropic/claude-sonnet-4-5",
"expensive_tasks": "anthropic/claude-opus-4-5",
"simple_tasks": "anthropic/claude-haiku-4-5"
}
}Configure task-based model selection
Monitoring and Maintenance
Setting up log rotation:
bash
# Create logrotate configuration
sudo nano /etc/logrotate.d/moltbotAdd:
bash
/var/log/moltbot/*.log {
daily
rotate 7
compress
delaycompress
notifempty
create 0640 moltbot moltbot
sharedscripts
postrotate
systemctl reload moltbot > /dev/null 2>&1 || true
endscript
}Security Best Practices Summary
Critical Security Checklist
✅ Network Security:
Firewall configured with UFW
Gateway bound to 127.0.0.1 only
SSH protected with Fail2Ban
No unnecessary ports exposed
✅ Authentication:
Strong passwords on all accounts
API keys secured in protected files
Web UI requires authentication
Telegram pairing enforced
✅ File System:
Config files: chmod 600
Directories: chmod 700
Running as non-root user
Separate user for MoltBot
✅ Monitoring:
Regular security audits scheduled
Logs monitored for suspicious activity
Failed login attempts tracked
API usage monitored
✅ Maintenance:
Regular system updates
Skill updates from trusted sources
Backup configuration files
Test recovery procedures
What NOT to Do
❌ Never:
Expose gateway to public internet (use 127.0.0.1)
Share API keys in conversations
Run as root user
Install unverified skills
Disable authentication
Use weak passwords
Grant full system access blindly
Trust all ClawdHub skills without review
Real-World Use Cases and Examples
Use Case 1: Automated Email Management
Setup:
Send this command to your bot:
"Monitor my inbox every 10 minutes. For urgent emails from clients, send me a Telegram notification. Archive newsletters automatically."What happens:
MoltBot checks email periodically
Identifies urgent messages using AI
Sends real-time notifications
Organizes inbox automatically
Use Case 2: Daily Morning Briefing
Setup:
"Every morning at 7 AM, send me:
1. Local weather forecast
2. Top 3 tech news headlines
3. My calendar for today
4. Unread important emails count"Result:
Proactive daily briefing
Personalized information digest
No manual checking required
Use Case 3: Code Project Assistant
Example conversation:
You: "Create a Python script that monitors a directory and backs up new files to Google Drive"
MoltBot: "I'll create that script for you. First, let me clarify a few details:
1. Which directory should I monitor?
2. How frequently should it check for new files?
3. Do you want to exclude any file types?
4. Should it preserve the directory structure in Google Drive?"
You: "Monitor /home/user/projects every 5 minutes, exclude .tmp files, preserve structure"
MoltBot: "Perfect! Creating the script now..."
[Creates complete Python script with proper error handling, logging, and Google Drive integration]
"✓ Script created: /home/moltbot/monitor_backup.py
✓ Requirements file created
✓ Setup instructions included
The script is ready to use. Would you like me to test it or set it up as a systemd service?"Use Case 4: Research Assistant
Example:
You: "Research the latest developments in quantum computing from the past week and summarize the key findings"
MoltBot: "I'll search for recent quantum computing developments and compile a summary..."
[After browsing and analyzing multiple sources]
"📊 Quantum Computing Developments - Past Week Summary
Key Breakthroughs:
1. IBM announced 1,000+ qubit processor advancement
2. Google demonstrated quantum error correction milestone
3. New algorithm for chemistry simulation published in Nature
Technical Details:
[Detailed breakdown of each development]
Business Impact:
[Analysis of implications]
Sources: [Links to original articles]
Would you like me to dive deeper into any specific development?"Troubleshooting Guide
Common Issues and Solutions
Issue: Bot doesn't respond to Telegram messages
Solution:
bash
# Check service status
sudo systemctl status moltbot
# View recent errors
sudo journalctl -u moltbot -n 50 --no-pager
# Verify Telegram connection
moltbot doctor
# Check pairing status
moltbot pairing list telegramIssue: High API costs
Solution:
json
// Adjust config.json
{
"models": {
"default": "anthropic/claude-sonnet-4-5" // Use cheaper model
},
"rateLimit": {
"maxTokensPerHour": 50000 // Limit token usage
}
}Issue: Gateway won't start
Solution:
bash
# Check if port 8080 is already in use
sudo netstat -tulpn | grep 8080
# Kill conflicting process
sudo kill -9 [PID]
# Restart MoltBot
sudo systemctl restart moltbotIssue: Skills not working
Solution:
bash
# Update skills
moltbot skills update
# Reinstall specific skill
moltbot skills remove [skill-name]
moltbot skills install [skill-name]
# Check skill configuration
cat ~/.moltbot/skills/[skill-name]/config.jsonCost Optimization Strategies
Reducing API Costs
1. Use appropriate model tiers:
json
{
"routing": {
"simple_chat": "claude-haiku-4-5",
"complex_tasks": "claude-sonnet-4-5",
"critical_work": "claude-opus-4-5"
}
}2. Implement usage limits:
json
{
"limits": {
"maxTokensPerDay": 500000,
"maxRequestsPerHour": 100,
"alertThreshold": 400000
}
}3. Monitor and analyze:
bash
# Check daily usage
moltbot usage today
# View monthly costs
moltbot usage month
# Set up cost alerts
moltbot alerts add --type cost --threshold 50Frequently Asked Questions
Q: Can I run multiple MoltBots on one VPS?
A: Yes, but each needs separate ports and user accounts. Recommended only for VPS with 16GB+ RAM.
Q: How do I backup my MoltBot configuration?
A:
bash
# Backup entire configuration
tar -czf moltbot-backup-$(date +%Y%m%d).tar.gz ~/.moltbot
# Restore from backup
tar -xzf moltbot-backup-20260130.tar.gz -C ~/Q: Can I use MoltBot for commercial purposes?
A: Check the license. MoltBot is open-source (MIT license), but you're responsible for API costs and compliance with AI provider terms.
Q: How do I update MoltBot?
A:
bash
# Update to latest version
moltbot update
# Restart service
sudo systemctl restart moltbotQ: What happens if my VPS runs out of disk space?
A: MoltBot will stop functioning. Monitor disk usage:
bash
# Check disk space
df -h
# Clean old logs
sudo journalctl --vacuum-time=7d
# Remove old memory files
find ~/.moltbot/memory -mtime +90 -deleteConclusion: Your AI Assistant is Ready
Congratulations! You've successfully deployed a fully functional, secure MoltBot AI assistant on your VPS. You now have:
✅ 24/7 Autonomous AI Assistant:
Running continuously on isolated VPS
Accessible through Telegram from anywhere
Persistent memory across conversations
Extensible through skills marketplace
✅ Enterprise-Grade Security:
Firewall protection with UFW
Fail2Ban brute-force prevention
Proper file permissions
Authentication enforced
Non-root user isolation
✅ Professional Infrastructure:
Systemd service management
Automatic restart on failure
Boot persistence
Centralized logging
Regular security audits
✅ Cost Optimization:
VPS: $10-15/month
API: $20-50/month typical usage
Total: $30-65/month
vs. $500+ Mac Mini + electricity + human assistant
Next Steps
Week 1: Learning Phase
Send diverse messages to understand capabilities
Test different types of tasks
Explore installed skills
Review API usage and costs
Week 2: Customization
Install additional skills matching your needs
Configure automated workflows
Set up scheduled tasks
Personalize communication style
Week 3: Integration
Connect email and calendar
Set up project monitoring
Configure proactive alerts
Establish backup routines
Month 2+: Optimization
Analyze usage patterns
Optimize for cost efficiency
Develop custom workflows
Share experiences with community
Staying Updated
Monitor MoltBot development:
Discord community: Join for support and skills
Documentation: https://docs.molt.bot
Security advisories: Subscribe to announcements
Regular maintenance schedule:
Weekly: Security audit script
Monthly: Update MoltBot and skills
Quarterly: Review and optimize configuration
Annually: VPS plan evaluation
Final Security Reminder
Critical practices to maintain:
Never share your API keys - Not in screenshots, logs, or conversations
Keep gateway on localhost - Never expose 0.0.0.0 to public
Review skills before installing - Verify source and permissions
Monitor unusual activity - Check logs regularly
Backup configuration - Before major changes
Use separate accounts - Don't connect work email/calendar initially
Stay informed about vulnerabilities - Follow security announcements
Test recovery procedures - Know how to restore from backup
Community and Support
Get help:
MoltBot Discord: Real-time community support
GitHub Issues: Report bugs and request features
Documentation: Comprehensive guides and API reference
Reddit r/MoltBot: Community discussions and use cases
Contribute back:
Share your experiences
Create custom skills
Improve documentation
Help other users
The Future of Personal AI
You're now part of the revolution in personal AI assistance. MoltBot represents a shift toward:
Privacy-first AI - Data stays on your infrastructure
Autonomous agents - Proactive, not just reactive
Customizable intelligence - Tailored to your specific needs
Community-driven - Open source and extensible
The power is now in your hands - literally, through your Telegram app. Your AI assistant is ready to work 24/7, learning your preferences, automating your workflows, and augmenting your capabilities.
Welcome to the future of personal productivity.