WhatsApp-first LLM bot
Project description
faltoobot
faltoobot is a personal assistant that lives on its own WhatsApp account.
How it works
- Get a separate SIM / WhatsApp account for Faltoobot.
- Sign in to that account on a spare phone.
- Install
faltooboton a computer that will stay online. - Run
faltoobot authand scan the QR code from that phone. - Message that WhatsApp number from your own number.
Usage
Install
uv tool install faltoobot
Then you can run faltoobot and faltoochat from any folder.
If uv asks you to add its tool bin directory to your PATH, run:
uv tool update-shell
Configure
faltoobot configure
Example ~/.faltoobot/config.toml:
[openai]
api_key = "your_key_here"
model = "gpt-5.4"
thinking = "high"
fast = false
[bot]
allow_groups = false
allowed_chats = ["15551234567@s.whatsapp.net"]
system_prompt = "You are Faltoobot, a concise and helpful AI assistant replying inside WhatsApp. Keep replies practical and readable on mobile."
If api_key is left blank, Faltoobot falls back to OPENAI_API_KEY from the environment.
Set allowed_chats to your own WhatsApp JID or phone number to keep the bot private. Leave it empty only if you want Faltoobot to reply to anyone who can message that account.
Pair once
Pair the WhatsApp account once:
faltoobot auth
Run in background
Install Faltoobot as a background service:
faltoobot install
Check whether it is running:
faltoobot status
Watch logs live:
faltoobot logs -f
Notes:
- macOS installs a
launchdagent. - Linux installs a
systemd --userservice. - If you want the Linux service to stay up after logout, enable lingering for your user.
Run in foreground
If you want to run it in the current terminal instead:
faltoobot run
Terminal chat
You can also use Faltoobot locally in the terminal:
faltoochat
faltoochat "draft a release note"
faltoochat --new-session
Commands
On WhatsApp:
/help
/reset
In terminal chat:
/tree
/reset
faltoochat supports image input, queued prompts while answering, and Shift+Enter for multiline input. Paste an image file path or use Ctrl+V to attach the current macOS clipboard image.
Tests
Run the test suite (parallel):
uv run pytest -n auto
Update
uv tool upgrade faltoobot
Need more details? See docs/guide.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file faltoobot-1.0.0.tar.gz.
File metadata
- Download URL: faltoobot-1.0.0.tar.gz
- Upload date:
- Size: 47.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f27c7fa685b604417cc834fa73cd9aa3918d3494ac22d0043d6299ebb116956b
|
|
| MD5 |
599f233f4db30b911b7be100a567574a
|
|
| BLAKE2b-256 |
ace43c40b1ba858eb8a5483d6939c7ea5fecd5f67ca4e6d7d3162fbdd46aa846
|
File details
Details for the file faltoobot-1.0.0-py3-none-any.whl.
File metadata
- Download URL: faltoobot-1.0.0-py3-none-any.whl
- Upload date:
- Size: 39.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
425d5040f50a5a29b8941b894b83f1a80d5bd39c78bf22e79e28f0f0ca9c4970
|
|
| MD5 |
40351d9456657fe4c4d2aabc3ef2172f
|
|
| BLAKE2b-256 |
e32dd3cd8e702c4ae4cc50dc0d38aef18404f5b3612760fd880a84b9b377f100
|