NativeBot
Build and ship mobile apps from your terminal. Powered by AI.
Describe your app → Claude builds it → Preview on your phone → Submit to App Store.
Quick Start
pipx install nativebot # or: pip install nativebot
claude login
nativebot
That's it. Three commands. No API key setup. Uses your Claude subscription.
Demo
$ nativebot
🚀 NativeBot — AI App Builder
? What would you like to do? Create new project
? Project name: FitnessApp
? Describe your app: A fitness tracker with workout logging
? Start building now? Yes
? Choose model: Sonnet 4.6 (recommended)
🤖 Claude is working...
├─ Reading package.json
├─ Writing app/screens/WorkoutScreen.tsx
├─ Writing app/components/ExerciseCard.tsx
├─ bash → npm install react-native-chart-kit
├─ Writing app/screens/ProgressScreen.tsx
└─ bash → npx expo export -p web
✅ Done! 8 files changed in 32s
You: Add a dark mode toggle to the settings page
🤖 Claude is working...
├─ Reading app/screens/SettingsScreen.tsx
├─ Writing app/context/ThemeContext.tsx
├─ Edit app/screens/SettingsScreen.tsx
└─ Edit app/_layout.tsx
✅ Done! 3 files changed in 18s
Commands
nativebot # Interactive mode (recommended)
nativebot create "MyApp" # Create a new project
nativebot list # List all projects
nativebot open MyApp # Open project and chat with Claude
nativebot preview MyApp # Launch Expo dev server
nativebot files MyApp # Show project file tree
nativebot export MyApp # Build & submit instructions
nativebot delete MyApp # Delete a project
Telegram Bot
Build apps from your phone — chat with NativeBot on Telegram.
NativeBot includes a self-hosted Telegram bot. You create your own private bot on Telegram and run it on your machine. It's not a public bot — it's your bot, connected to your projects.
Setup (1 minute):
# 1. Create your bot on Telegram:
# Open Telegram → search @BotFather → send /newbot
# Pick a name and username → BotFather gives you a token
# 2. Start the bot on your machine:
export TELEGRAM_BOT_TOKEN=your-token
nativebot telegram
Now open Telegram and message your bot. That's it.
Commands in Telegram:
/create MyApp— Create a new project/open MyApp— Switch to a project/preview— Get Expo URL to open on your phone (chat keeps working)/list— List all projects/files— Show file tree/model opus— Switch model- Just send any message to chat with Claude!
The bot runs on your machine — same local projects, same ~/.nativebot/projects/ directory. You can use the CLI and Telegram interchangeably on the same projects.
How It Works
- Create — Seeds a production-ready Expo React Native template
- Chat — Describe features in plain English, Claude writes the code
- Preview — Run
nativebot preview MyApp→ scan QR with Expo Go on your phone - Iterate — Keep chatting to add features, fix bugs, refine UI
- Ship — Build with EAS and submit to App Store / Google Play
Preview Your App
nativebot preview MyApp
# Opens Expo dev server — scan QR code with Expo Go
Or manually:
cd ~/.nativebot/projects/MyApp
npx expo start
Deploy to App Store
nativebot export MyApp
# Shows step-by-step build & submit instructions
Or directly:
cd ~/.nativebot/projects/MyApp
npm install -g eas-cli
eas login
eas build --platform ios
eas submit --platform ios
Requirements
| Requirement | Required? | Notes |
|---|---|---|
| Python 3.10+ | Yes | python3 --version |
| Node.js 18+ | Yes | For Expo projects |
| Claude subscription | Recommended | Just run claude login — no API key needed |
| Anthropic API Key | Alternative | Get one if you prefer API access |
| Expo Go (mobile) | Recommended | For live preview on phone |
| Apple Developer Account | For shipping | For App Store submission |
Architecture
You (terminal) NativeBot CLI Claude Agent SDK
┌──────────────┐ ┌────────────────┐ ┌──────────────────┐
│ nativebot open │───▶│ Project Manager │───▶│ Claude AI │
│ "Add login" │◀───│ Chat Session │◀───│ Reads/Writes code │
└──────────────┘ └────────────────┘ └──────────────────┘
│
~/.nativebot/projects/
├── FitnessApp/
│ ├── app/
│ ├── package.json
│ └── .nativebot/conversation.json
└── TodoApp/
- Projects are real directories on your filesystem
- Claude edits files directly — no database, no cloud sync
- Conversations saved locally for session continuity
- Your code, your machine, your control
Why NativeBot?
| Replit | Bolt | Lovable | Vibecode | NativeBot | |
|---|---|---|---|---|---|
| Open source | ❌ | ❌ | ❌ | ❌ | ✅ |
| CLI / Terminal | ❌ | ❌ | ❌ | ❌ | ✅ |
| Self-hosted | ❌ | ❌ | ❌ | ❌ | ✅ |
| Your own API key | ❌ | ❌ | ❌ | ❌ | ✅ |
| Mobile-first (Expo) | ❌ | ❌ | ❌ | ✅ | ✅ |
| No account required | ❌ | ❌ | ❌ | ❌ | ✅ |
| Unlimited usage | ❌ | ❌ | ❌ | ❌ | ✅ |
| Free forever | ❌ | ❌ | ❌ | ❌ | ✅ |
Project Structure
nativebot/
├── src/nativebot/
│ ├── cli.py # Click commands
│ ├── chat.py # Interactive chat with Claude
│ ├── projects.py # Project management (filesystem)
│ ├── agent.py # Claude Agent SDK integration
│ ├── constants.py # Models, tools, system rules
│ └── display.py # Rich terminal formatting
├── template/ # Expo seed template
├── pyproject.toml # Package config
├── README.md
├── VISION.md
└── LICENSE
Configuration
Projects are stored in ~/.nativebot/projects/. To change:
export NATIVEBOT_PROJECTS_DIR=/path/to/projects
Default model is Claude Opus 4.6. To change:
nativebot open MyApp --model sonnet # Use Sonnet 4.6 (faster)
Contributing
PRs welcome! See CONTRIBUTING.md.
License
MIT — see LICENSE.
Metadata
Release files for nativebot 1.6.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nativebot-1.6.4.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nativebot-1.6.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / nativebot-1.6.4.tar.gz
| Download URL | nativebot-1.6.4.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11c67f7c541fbb021fa1fc929ae589bf2ee67098f3ff1824a89e74e58eb96169
|
|
BLAKE2b-256 checksum How to use checksums |
4c954c87779fa0c3f100f977b016fce67ba8a5c101aa2c280577bb679937531b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.14.3 HTTPX/0.28.1
|
Release files / nativebot-1.6.4-py3-none-any.whl
| Download URL | nativebot-1.6.4-py3-none-any.whl |
|---|---|
| Size | 82.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54f8b7232ff493aa74dfd260b2d485821b9692753c5f6eabb868249f87fa3af4
|
|
BLAKE2b-256 checksum How to use checksums |
a765340421689059f3d82072b305281cbfc3264ed9d7dee95320c39d3659bdf1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.14.3 HTTPX/0.28.1
|