A locally running API for powering the Mosayic tool
Project description
PyMosaygent
A locally running Python API server that powers Mosayic — a development companion for managing full-stack React Native and Python projects with integrated support for Firebase, Google Cloud, GitHub, Expo, and Supabase.
Features
- Environment Management — Configure project directories, detect Python and React Native codebases, track git status
- Expo Dev Server Control — Start, stop, and monitor Metro bundler with live reload support
- Firebase Integration — Manage projects, configure Android/iOS/Web apps, deploy functions, handle secrets
- GitHub Operations — Clone templates, initialize repositories, manage Actions secrets
- Supabase Local Dev — Control local Supabase instance, run migrations, manage database
- Google Cloud Run — Deploy containerized services
Requirements
- Python 3.10 - 3.12
- External CLI tools (depending on features used):
firebase-cliandgcloudfor Firebase/GCP operationsghfor GitHub operationsnode,npm,expo, andeasfor Expo/React Nativesupabaseanddockerfor Supabase local developmentgitfor version control
Installation
pip install mosaygent
For development:
git clone https://github.com/yourusername/pymosaygent
cd pymosaygent
uv sync
Project Structure
pymosaygent/
├── mosaygent/
│ ├── __init__.py # App entry, service initialization
│ ├── command_runner.py # Async subprocess execution
│ ├── logger.py # Colored logging setup
│ ├── middleware.py # Exception handling
│ ├── routes/ # API endpoints
│ │ ├── environment.py # Project & codebase management
│ │ ├── expo.py # Expo dev server control
│ │ ├── firebase.py # Firebase CLI operations
│ │ ├── github.py # GitHub & repo operations
│ │ └── supabase.py # Supabase local dev
│ └── services/ # Business logic
│ ├── environment.py # Project detection, git ops
│ ├── expo.py # Expo process management
│ ├── github.py # GitHub CLI wrapper
│ ├── cloudrun.py # Cloud Run deployment
│ └── firebase/ # Firebase service modules
├── tests/ # Test suite
├── pyproject.toml # Project metadata
└── CLAUDE.md # Code standards
API Endpoints
Environment
| Method | Endpoint | Description |
|---|---|---|
| POST | /environment/set-directory |
Set project root directory |
| GET | /environment/status |
Check API & mobile codebase status |
| POST | /environment/clone-api |
Initialize Python API from template |
Expo
| Method | Endpoint | Description |
|---|---|---|
| POST | /expo/start |
Start Metro bundler |
| POST | /expo/stop |
Stop development server |
| GET | /expo/status |
Get server status |
| POST | /expo/reload |
Trigger live reload |
| GET | /expo/logs |
Fetch captured output |
| GET | /expo/connection |
Get Metro URL and port |
Firebase
| Method | Endpoint | Description |
|---|---|---|
| GET | /firebase/cli-installed |
Check Firebase & gcloud CLI |
| GET | /firebase/auth-status |
Authentication state |
| GET | /firebase/projects |
List accessible projects |
| POST | /firebase/create-android-app |
Create Android app, get google-services.json |
| POST | /firebase/fetch-firebase-configs |
Download platform configs |
| POST | /firebase/deploy |
Deploy Firebase project |
| POST | /firebase/deploy-cloud-run |
Deploy Cloud Run service |
| POST | /firebase/set-secrets |
Create env files & upload secrets |
GitHub
| Method | Endpoint | Description |
|---|---|---|
| GET | /github/auth |
Check gh CLI auth status |
| GET | /github/accounts |
List user & organizations |
| POST | /github/init-repo |
Clone template, create GitHub repo |
| POST | /github/set-secret |
Set GitHub Actions secret |
Supabase
| Method | Endpoint | Description |
|---|---|---|
| GET | /supabase/check-installation |
Verify Docker & Supabase CLI |
| GET | /supabase/migrations |
List migrations |
| POST | /supabase/migrations |
Create migration via db diff |
| POST | /supabase/start |
Start local Supabase |
| POST | /supabase/stop |
Stop Supabase |
| GET | /supabase/status |
Get running services info |
| POST | /supabase/reset-database |
Reset local database |
Health
| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Liveness check |
Configuration
Project directory is persisted in ~/.mosayic/config.txt and auto-loaded on startup.
Codebase detection:
- Python API: Looks for
pyproject.tomlin subdirectories - React Native: Looks for
app.jsonwith Expo configuration
Testing
pytest
pytest --cov # with coverage
License
MIT
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 mosaygent-0.1.4.tar.gz.
File metadata
- Download URL: mosaygent-0.1.4.tar.gz
- Upload date:
- Size: 120.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c431612115d8ed72439048c5bcf0c0451eb112aaf9353ac68620abd8f600b255
|
|
| MD5 |
b3fd98acd4ed8eee7ff19ae7b4e7242e
|
|
| BLAKE2b-256 |
78bcae31750d44ff4274f0a843c0f8598b1adb18f1f28bceee0d8ce943ff821c
|
File details
Details for the file mosaygent-0.1.4-py3-none-any.whl.
File metadata
- Download URL: mosaygent-0.1.4-py3-none-any.whl
- Upload date:
- Size: 42.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a9a7dadd40a51c3def646284511bd33c1dbc0539e1efc73b434353c3a16969e
|
|
| MD5 |
e3c86ebdbb3a17f7e9653684f40d21d8
|
|
| BLAKE2b-256 |
dc224c69e89f991166bacca56cd9daade03bae175ff69f23ba1a2efcb370f52a
|