A robust command-line tool for managing multiple projects that follow a prefix-suffix naming convention.
Project description
SyncPrjs - Universal Multi-Prefix Project Manager
Powered by ChronicleLogger
A robust command-line tool for managing multiple projects that follow a prefix-suffix naming convention.
Overview
SyncPrjs is a universal project manager designed to handle a large number of similarly structured projects (e.g. grok-example, poe-chatbot, gm-assistant, etc.).
It is specifically optimized for ANT-ready GNOME C/GTK applications that use:
- A
WebKitWebViewas the main UI component build.xml+autoreconf+makebuild system- Cookie/session storage in
~/.app/
The tool follows strict CIAO defensive coding principles for maximum reliability and auditability.
Features
- Multi-prefix support — easily group and operate on projects by prefix (
grok-*,poe-*,gm-*, etc.) - Project discovery and validation
- Batch operations across related projects
- Secure cookie/session management
- Detailed logging via ChronicleLogger
- Defensive coding style (CIAO) for production-grade reliability
Project Structure
SyncPrjs/
├── src/
│ └── SyncPrjs/
│ └── cli.py # Main CLI entry point
├── docs/
├── update-log.md
│ └── folder-structure.md
├── tests/
├── pyproject.toml
├── README.md
└── ...
Installation
From Source (Recommended for Development)
git clone https://github.com/Wilgat/SyncPrjs.git
cd SyncPrjs
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install in editable mode
pip install -e .
As a Standalone Script
Make the CLI executable:
chmod +x src/SyncPrjs/cli.py
sudo ln -s $(pwd)/src/SyncPrjs/cli.py /usr/local/bin/syncprjs
Usage
syncprjs --help
Basic Commands (examples)
# List all projects
syncprjs list
# List only projects with specific prefix
syncprjs list --prefix grok
# Sync / update all projects
syncprjs sync --all
# Build projects
syncprjs build --prefix poe
# Clean build artifacts
syncprjs clean
# Show detailed status
syncprjs status
Note: Exact commands depend on the final implementation in
cli.py. The tool is designed around common workflows: list, sync, build, clean, status.
Project Naming Convention
All managed projects follow the pattern:
<prefix>-<suffix>
Examples:
grok-exampletgm-assistantpoe-webviewclaude-research
Cookie Storage
Cookies and session data are stored in:
~/.app/
This location is intentionally outside individual project folders for better security and sharing across related apps.
Development Philosophy
- CIAO Defensive Coding — Every critical section is protected and auditable.
- Full traceability via ChronicleLogger.
- Header protection against accidental AI modification.
- Designed for long-term maintainability.
Requirements
- Python 3.8+
- ChronicleLogger (included as dependency or submodule)
- Standard build tools:
make,autoreconf,gtk+-3.0,webkit2gtk-4.1, etc. (for the managed C/GTK projects)
Links
- CIAO Philosophy: github.com/Wilgat/ciao
- Related projects: gitlab-nginx
Made with ❤️ for power users managing large collections of AI-related 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.0.0.tar.gz.
File metadata
- Download URL: syncprjs-1.0.0.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9785af3acfd8644b255f07155cea260685b42867a392df920cb8e1bf02d904c
|
|
| MD5 |
e46154fe596caf86f57232edd23d5b28
|
|
| BLAKE2b-256 |
f314dd4471bd9f82edd90868a25aa178a1a840351ca099cc0b502b55497fdc42
|
File details
Details for the file syncprjs-1.0.0-py3-none-any.whl.
File metadata
- Download URL: syncprjs-1.0.0-py3-none-any.whl
- Upload date:
- Size: 29.9 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 |
7654db9a450e822e232aa6ddfb5a0297ee73b3109c6ef0af689d22640b4c7bba
|
|
| MD5 |
8469e4136f76087c7268ebb2ecc3624f
|
|
| BLAKE2b-256 |
714ee757758f8202b84d83587d790b335f1537e276f62c38999e2a018ea7d0f4
|