A robust command-line tool for managing multiple projects that follow a prefix-suffix naming convention.
Project description
SyncPrjs - Universal Multi-Prefix Project Manager
Official Recommendation from grok see local copy
A robust, CIAO-defensive command-line tool for managing hundreds of prefix-suffix AI desktop clients.
This project follows strict CIAO defensive programming principles.
Overview
SyncPrjs manages large collections of projects following the prefix-suffix naming convention (e.g. grok-iron, gm-wilgat, poe-1n4003, cf-iron).
It is specifically designed for GNOME C/GTK applications using WebKitWebView, with persistent cookie/session management for Google and Cloudflare services.
Key Capabilities:
- Smart Google cookie synchronization (
gm-*as source of truth) - Safe Cloudflare-only cookie synchronization (v3)
- Project code templating with automatic suffix renaming
- Automatic backups before any cookie modification
- Auto-start with staggered delay
- Full
--quietand--jsonsupport for scripting
Powered by ChronicleLogger 1.3.0+
Installation
pip install SyncPrjs
Or from source (editable):
git clone https://github.com/Wilgat/SyncPrjs.git
cd SyncPrjs
pip install -e .
The command sync-prjs will be available in your PATH.
Usage
1. Interactive Mode (Default)
sync-prjs
This launches the full menu:
0. Auto-start projects by prefix (20s delay)
1. Sync Google cookies (Smart merge)
2. Sync Google cookies (Missing folders only)
3. Sync project code
4. Sync Cloudflare cookies by prefix (v3 - safe)
5. Inspect cookies (Google + Cloudflare + Others)
6. Restore cookies from backup
7. Clean all backup folders
8. Show cookie database structure (debug schema)
Q. Quit
2. Non-Interactive Mode (Recommended for daily use & scripting)
Basic Commands
# Show version and diagnostics
sync-prjs about
# Show help
sync-prjs help
# Quiet mode
sync-prjs about --quiet
sync-prjs help --quiet
Auto-start Projects
# Start all projects under a specific prefix with 20-second delay
sync-prjs autostart --prefix gm
sync-prjs autostart --prefix grok
sync-prjs autostart --prefix poe
sync-prjs autostart --prefix cf
Cookie Inspection
# Inspect a specific project
sync-prjs inspect --project gm-wilgat
# JSON output (perfect for scripting)
sync-prjs inspect --project gm-wilgat --json
# Quiet inspection
sync-prjs inspect --project gm-wilgat --quiet
Google Cookie Sync
# Smart merge (recommended - preserves non-Google cookies)
sync-prjs google-sync
# Only new/missing project folders
sync-prjs google-missing
Cloudflare Cookie Sync (v3 - safe)
sync-prjs cf-sync --source cf-iron
Project Code Synchronization
sync-prjs code-sync --source grok-iron
Schema / Debug
sync-prjs schema --project gm-wilgat
sync-prjs schema --project gm-wilgat --json
Restore & Maintenance
sync-prjs restore
sync-prjs clean-backups
Full Command Reference
| Command | Mode | Key Options | Description |
|---|---|---|---|
sync-prjs |
Interactive | - | Full menu |
sync-prjs help |
Non-interactive | --quiet, --json |
Show this help |
sync-prjs about |
Non-interactive | --quiet, --json |
Version + diagnostics |
sync-prjs autostart |
Non-interactive | --prefix <gm|grok|poe|cf...> |
Auto-launch projects |
sync-prjs inspect |
Non-interactive | --project <name>, --json |
Cookie statistics |
sync-prjs google-sync |
Non-interactive | - | Smart Google cookie merge |
sync-prjs google-missing |
Non-interactive | - | Copy to missing folders only |
sync-prjs cf-sync |
Non-interactive | --source <project> |
Cloudflare-only sync (v3) |
sync-prjs code-sync |
Non-interactive | --source <project> |
Code + suffix sync |
sync-prjs restore |
Interactive | - | Restore from backup |
sync-prjs clean-backups |
Interactive | - | Delete old backups |
sync-prjs schema |
Non-interactive | --project <name>, --json |
Show DB structure |
JSON Mode Examples (for scripting/automation)
# Get cookie stats in JSON
sync-prjs inspect --project gm-wilgat --json
# About information
sync-prjs about --json
Example output:
{
"type": "inspect",
"command": "inspect",
"project": "gm-wilgat",
"success": true,
"total_cookies": 107,
"google_cookies": 89,
"cloudflare_cookies": 2,
"other_cookies": 16,
"timestamp": "20260412-014500"
}
Project Naming Convention
All projects must follow: <prefix>-<suffix>
Common prefixes:
gm-→ Google Master (source of truth for Google cookies)grok-,poe-,cf-,gacc-,yt-, etc.
Cookie Storage Location
~/.app/<full-project-name>/cookies/cookies.sqlite
Example: ~/.app/gm-wilgat/cookies/cookies.sqlite
Important Notes
- Always run SyncPrjs from the directory containing your prefix-suffix project folders.
- Cookie backups are created automatically before any modification using the safe format:
~/.app/{project}.YYYYMMDD-N.bak/ - Cloudflare sync (v3) only touches Cloudflare-related cookies.
- Google sync uses
gm-*projects as the authoritative source.
Development Philosophy
This tool is built with CIAO Defensive Programming Principles v2.9.1 (Short form: CIAO ) to survive repeated AI-assisted modifications without losing critical safety features.
Requires ChronicleLogger 1.3.0+
Links
- ChronicleLogger on PyPI
- CIAO Philosophy
- Related projects: github-client, pix-client, poe-client, pix-client
Made with ❤️ for power users managing large collections of AI desktop clients.
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
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 syncprjs-1.3.4.tar.gz.
File metadata
- Download URL: syncprjs-1.3.4.tar.gz
- Upload date:
- Size: 42.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
179004fe82dd85fc5d6da73f35c3b71a9c40a4680025f80d2b5f1dfb954332ee
|
|
| MD5 |
7e592f0ab72eb604e4116050b6652bc5
|
|
| BLAKE2b-256 |
1054fede4f3f26e24a1a0fb9ae9ef5bb296a0d88e50e19d1ef1282aeb41a0198
|
File details
Details for the file syncprjs-1.3.4-py3-none-any.whl.
File metadata
- Download URL: syncprjs-1.3.4-py3-none-any.whl
- Upload date:
- Size: 41.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cac98be154793a2ffe1dba1826a45fa8abaf53442c0f3ce77b92dfa2fd70044
|
|
| MD5 |
a7e707030ae173b42c35f2f90c211f99
|
|
| BLAKE2b-256 |
c5965d0030574cd76dcdc688c5394b0394c68c0dd46f20315a883f548cd8c2ad
|