Skip to main content

A robust command-line tool for managing multiple projects that follow a prefix-suffix naming convention.

Project description

SyncPrjs - Universal Multi-Prefix Project Manager

Version License CIAO Python

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 --quiet and --json support 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


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

syncprjs-1.3.4.tar.gz (42.0 kB view details)

Uploaded Source

Built Distribution

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

syncprjs-1.3.4-py3-none-any.whl (41.0 kB view details)

Uploaded Python 3

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

Hashes for syncprjs-1.3.4.tar.gz
Algorithm Hash digest
SHA256 179004fe82dd85fc5d6da73f35c3b71a9c40a4680025f80d2b5f1dfb954332ee
MD5 7e592f0ab72eb604e4116050b6652bc5
BLAKE2b-256 1054fede4f3f26e24a1a0fb9ae9ef5bb296a0d88e50e19d1ef1282aeb41a0198

See more details on using hashes here.

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

Hashes for syncprjs-1.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3cac98be154793a2ffe1dba1826a45fa8abaf53442c0f3ce77b92dfa2fd70044
MD5 a7e707030ae173b42c35f2f90c211f99
BLAKE2b-256 c5965d0030574cd76dcdc688c5394b0394c68c0dd46f20315a883f548cd8c2ad

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