Skip to main content

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-1n4003, poe-trade, 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 (user chooses any source prefix, gm-* recommended)
  • Safe Cloudflare-only cookie synchronization (v3)
  • Project code templating with automatic suffix renaming
  • Automatic backups before any cookie modification
  • Auto-start with configurable launch interval + per-project SHUTDOWN timer
  • Suspend / Un-suspend projects by suffix
  • Full --quiet and --json support for scripting

Powered by ChronicleLogger 1.3.0+


Installation

pip install SyncPrjs

Or from source:

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

Main menu (updated for 1.5.0):

0. Auto-start projects by prefix (configurable delay + SHUTDOWN)
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. Remove backup folders (sync + cookie backups)
8. Clean all backup folders (old behavior)
9. Show cookie database structure (debug schema)
10. Suspend projects by suffix (add .suspended)
11. Un-suspend projects by suffix (remove .suspended)
Q. Quit

New in 1.5.0 (Options 1 & 2):
When you select 1 (Smart merge) or 2 (Missing folders only), you will now be prompted to choose the SOURCE prefix (gm- is shown as recommended).
The tool will automatically exclude projects with the chosen source prefix from targets and, if the source is not gm-, it will also include gm-* projects as targets — exactly as you requested.

2. Non-Interactive & Automation Mode

Auto-start with Configurable Interval + SHUTDOWN (New in 1.4.4)

# Auto-start all gm-* projects with 8 seconds interval between launches
sync-prjs autostart --prefix gm --interval 8

# Auto-start with custom interval and auto-shutdown timer
sync-prjs autostart --prefix gm --interval 15 --shutdown 300

# Quiet + JSON for automation
sync-prjs autostart --prefix cf --interval 10 --shutdown 600 --quiet --json

CLI Flags (recommended):

  • --interval, --delay <seconds> : Delay in seconds between launching each project (default: 20)
  • --shutdown <seconds> : Auto-shutdown each launched project after N seconds (0 = never, default: 0)
  • --prefix <prefix> : Required for autostart (e.g. gm, cf, poe)

You can also combine with environment variables as fallback:

SHUTDOWN=180 INTERVAL=12 sync-prjs autostart --prefix gm

Other Commands

sync-prjs about                    # Version + diagnostics
sync-prjs help                     # Show complete help
sync-prjs inspect --project gm-1n4003
sync-prjs cf-sync --source cf-iron
sync-prjs code-sync --source grok-iron

Full Command Reference

Command Description Key Options
sync-prjs Interactive menu -
sync-prjs autostart Auto-start projects by prefix --prefix gm, --interval 10, --delay 10, --shutdown 300
sync-prjs inspect Cookie statistics --project <name>, --json
sync-prjs google-sync Smart Google cookie merge - (interactive source prefix selection)
sync-prjs cf-sync Cloudflare-only sync (v3) --source <project>
sync-prjs code-sync Code + suffix sync --source <project>
sync-prjs about Version & diagnostics --quiet, --json
sync-prjs help Show complete help --quiet, --json

Global Options:

  • --quiet, -q — Suppress all non-essential output
  • --json — Machine-readable JSON output (implies --quiet)

Environment Variables

  • SHUTDOWN=N — Auto-shutdown each launched project after N seconds (0 = never)
  • INTERVAL=N — Launch interval in seconds (CLI flag takes precedence)
  • JSON=1 — Force JSON output mode
  • QUIET=1 — Quiet mode

New in 1.5.0 (2026-05-20)

  • Sync Google cookies (Options 1 & 2) now lets you choose any source prefix interactively (gm- recommended).
    The chosen prefix is excluded from targets. If the source is not gm-, then gm-* projects are automatically included as targets.
  • Fixed interactive selection helper (choose_one) for full compatibility.
  • All previous safety, backups, quiet/JSON mode, and CIAO defensive style preserved.

Project Naming Convention

All projects must follow: <prefix>-<suffix>

Common prefixes: gm-, grok-, poe-, cf-, yt-, etc.


Cookie Storage Location

~/.app/<full-project-name>/cookies/cookies.sqlite

Important Notes

  • Always run sync-prjs from the directory containing your prefix-suffix project folders.
  • Cookie backups are created automatically before any modification.
  • Full CIAO defensive style maintained.

Development Philosophy

This tool is built with CIAO Defensive Programming Principles to survive repeated AI-assisted modifications.

Requires ChronicleLogger 1.3.0+


Links


Made with ❤️ for power users managing large collections of AI desktop clients.

Last updated: May 20, 2026

Metadata

Release files for SyncPrjs 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SyncPrjs 1.5.0
File Size Uploaded Provenance Actions
syncprjs-1.5.0.tar.gz 45.9 kB Without provenance Details for syncprjs-1.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for SyncPrjs 1.5.0
File Interpreter ABI Platform Actions
syncprjs-1.5.0-py3-none-any.whl Python 3 none any Details for syncprjs-1.5.0-py3-none-any.whl

Total release size: 90.9 kB

Release files / syncprjs-1.5.0.tar.gz

Download URL syncprjs-1.5.0.tar.gz
Size 45.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d4bd44279b50cd14abdf409a51054596ea8c10bb589c42f6123b88dacb76fca0
BLAKE2b-256 checksum
How to use checksums
0718ebb16c23bda273075cb209089f05fb0099fc0719e2fcc6671fc73c6176d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / syncprjs-1.5.0-py3-none-any.whl

Download URL syncprjs-1.5.0-py3-none-any.whl
Size 45.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bd9d9cde34e373667320ebdd72fcd5c9d5110b854af17a1c7018d2d46e4d1f26
BLAKE2b-256 checksum
How to use checksums
b9a6f66da941861c55af0e930c297f21282eaccf9ff652020020197d00a6891d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Security for SyncPrjs 1.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page