Skip to main content

WhatsApp-first LLM bot

Project description

faltoobot

tests coverage

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 faltoobot on a computer that will stay online.
  • Run faltoobot auth and scan the QR code from that phone.
  • Message that WhatsApp number from your own number.

Usage

Install

uv tool install faltoobot

For faster project and code search inside faltoochat, install ripgrep (rg) too:

# macOS
brew install ripgrep

# Ubuntu / Debian
sudo apt-get update && sudo apt-get install -y ripgrep

# Fedora
sudo dnf install ripgrep

# Arch Linux
sudo pacman -S ripgrep

faltoochat falls back without rg, but search is faster and more reliable when it is installed.

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"
oauth = ""
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 oauth is set, Faltoobot prefers that OAuth auth file over api_key. If oauth is 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

Sign in to OpenAI Codex

For faltoochat, you can also bootstrap a Codex OAuth login directly. This saves Faltoobot's own auth file under ~/.faltoobot/auth.json by default and writes that path into openai.oauth in your config:

faltoobot login

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 launchd agent.
  • Linux installs a systemd --user service.
  • 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. WhatsApp chats now also support incoming image messages, including captioned images, image-only prompts, and multi-image albums.

Development

Run the Astro docs site locally:

cd website
npm install
npm run dev

Build the static site locally:

cd website
npm run build

Tests

Run the full test suite with coverage:

uv run pytest -n auto --cov=faltoobot --cov-report=term-missing:skip-covered

Coverage is published in the badge above, and pre-commit enforces a minimum of 78% line coverage.

Update

uv tool upgrade faltoobot

Need more details? See the Astro docs site in website/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

faltoobot-1.5.1.tar.gz (93.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

faltoobot-1.5.1-py3-none-any.whl (76.9 kB view details)

Uploaded Python 3

File details

Details for the file faltoobot-1.5.1.tar.gz.

File metadata

  • Download URL: faltoobot-1.5.1.tar.gz
  • Upload date:
  • Size: 93.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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

Hashes for faltoobot-1.5.1.tar.gz
Algorithm Hash digest
SHA256 5a2a6a0965d62203476b42182fb99baa9a64e89bc9303e59dee5e23a9693cb15
MD5 1ad6bcb1877d6f563c7a6d3ea830ca42
BLAKE2b-256 64ece1fb1e4f25ccf8d4e8e8181490cade30e9a2908a08977222de419b3fd7f1

See more details on using hashes here.

File details

Details for the file faltoobot-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: faltoobot-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 76.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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

Hashes for faltoobot-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 933feb379225a20747e1c13045e8fcf14a764d1840dc2cea68abdcd9c300ecd2
MD5 22186a4049b162e60a791b9cbe13873e
BLAKE2b-256 bc83e2540504c8e1dbbe67e1483c9c703bb00e613ea0c0e10d51120abb8251cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page