中文 | English
A tool system for managing local software directories and automatically syncing updates, supporting GitHub and GitLab cloud storage, with Git accelerated downloads.
For the latest curated software list and notes, see Lastb_soft_version.txt.
This toolkit is built around information security and reducing data leakage, aiming to minimize cloud reporting, behavioral tracking, and algorithmic data harvesting where practical.
The following is a self-check summary of choices in that list, useful when comparing notes with others (e.g. colleagues or other assistants). It is not a precise measurement of “how much data leaks” and is not legal or compliance advice.
Directions that usually align well with the list
- Screenshot OCR: The list warns that WeChat / QQ / “PC manager” style active OCR often goes to the cloud; PixPin offline OCR matches the recommended approach.
- Input method: Dropping Sogou-type IMEs for Weasel + rime-ice (Rime) and other local open-source stacks matches the list.
- System-wide blocking: Zen (system proxy) + AdGuard DNS / 18bit DNS (batch scripts under
system_good) + uBlock Origin and Privacy Badger in the browser matches the list—a layered setup. - Bloat and updates: Win11Debloat, StopUpdates10, StartAllBack, HiBit Startup in the list help cut preinstalled apps and startup noise (exact effect depends on your choices).
- Clipboard: Ditto and similar local history tools fit the “avoid cloud clipboard sync” idea.
- Local AI: Ollama and other on-device models reduce sending sensitive content through web LLMs (still mind model provenance and disk security).
- Player / viewer / archives: PotPlayer, XnView MP, 7-Zip, WinRAR fit a “keep common tasks local” posture.
Objective upload or trust boundaries still present in the list
- Official Chrome: Sync, crash reports, prediction services, Enhanced Safe Browsing, etc. send more to Google; consider turning off sync and usage reporting and using Standard (not Enhanced) Safe Browsing where appropriate (see Chrome settings and Google’s documentation).
- P2P (Thunder / BitComet / qBittorrent, etc.): The protocol uploads while seeding; repacked / “enhanced” builds also mean trusting the repacker, not only the upstream project.
- LX Music: The desktop client is relatively transparent (open source), but custom JS sources call third-party music APIs—IP, search terms, etc. may be visible to those endpoints; avoid sensitive searches in high-risk contexts.
- Microsoft Defender: Even with DefenderUI tuning, cloud sample submission and threat telemetry may still occur per Microsoft policy.
- Registered, repacked, or site-modified builds: Included for day-to-day utility; from a supply-chain perspective they differ from “official signed builds only”—trade-offs are yours.
Windows / hardware areas not spelled out end-to-end in the long doc
- Diagnostics / telemetry, advertising ID, activity history, location, OneDrive / account sync need explicit review under Settings → Privacy & security (and related pages).
- GPU suites (e.g. GeForce Experience bundled with NVIDIA installers) often collect usage stats; prefer driver-only installs or disable data collection where offered.
- .NET, WebView2, VC++ runtimes check for updates on their own schedules; the list mentions these components—pair with firewall / update policy review if you are privacy-sensitive.
Bottom line: As a practice of local-first tooling, less big-tech cloud OCR/IME, plus system and DNS filtering, this stack often reduces casual side channels and behavioral reporting versus a default PC setup—but there is no provable “percentage cap” or zero-upload guarantee. High-sensitivity environments should add Group Policy, egress monitoring, and official-trusted binaries as needed.
- Local Software Management: Scan local software directories, generate file indexes and version lists
- Cloud Sync: Automatically push to GitHub or GitLab, support Git accelerated downloads
- Multi-Platform Support: Support GitHub and GitLab, flexible switching
- Smart Updates: Compare based on file modification time, only download changed files
- Automatic Process Management: Automatically close related processes before update, automatically start specified programs after update
- Windows Service Support: Automatically identify and start Windows services (e.g., NetTime service)
- Multi-Program Launch: Support launching multiple programs simultaneously (e.g., main program and service program)
- Update Order Control: Update software according to configuration file order, ensuring dependency relationships
- System Tray: Run in background, support system tray icon and silent updates
- Cross-Platform: Support Windows, Linux, macOS
- Complete Sync: Full-featured sync tool with automatic process management
- Out-of-the-Box: Ready-to-use registered/cracked versions, keep updated versions daily, virus-scanned
-
Text Editors: Notepad++, notepad-, SublimeText, EditPlus, EmEditor (large files 16T), UltraEdit
-
System Tools: CCleaner, Everything, WinMemoryCleaner, CrystalDiskInfo, NetTime
-
Compression Tools: WinRAR, 7-Zip, excellent image viewer XnViewMP
-
Startup Management: HiBit Startup Manager, duplicate file finder Duplicate Cleaner Pro
-
System Optimization: system_good directory contains multiple system tools
- Driver Management: Driver Talent (overseas version)
- System Optimization: Start menu StartBackAIO supports all Windows versions, disable patch updates, KMS activation, disable built-in antivirus
- Utility Tools: Ditto clipboard, DuplicateCleaner duplicate file cleanup, Putty, SmartDefrag disk defragmentation, etc.
- File Server: copyparty - Local self-hosted sync, Web file server, open source secure, multi-platform support
- DNS Configuration Tools: One-click encrypted DNS (DoH) configuration
Configure_AdGuard_DNS.bat- Configure AdGuard DNS (free, blocks ads, trackers, malicious websites)Configure_18bit_DNS.bat- Configure 18bit encrypted DNS (blocks ads, malicious websites)Restore_Default_DNS.bat- Restore default DNS settings (automatic)
-
More Software: Easy to extend support, post if you need others
Tested on Windows 10-11, Windows Server permission issues
-
Download config.json, sync_software.exe
-
**Modify the path in config.json, run sync_software.exe, and you can use it to automatically update all software to the latest version
Tested on Windows Server + Windows 10-11
-
**Download config.json, sync_software.py, sync_software.bat
-
**Modify the path in config.json, run sync_software.bat, and you can use it
softgitup/
├── config.json # Configuration file
├── soft_manager.py # Local management tool
├── soft_sync.py # Sync tool (GUI version)
├── sync_software.py # Complete sync tool (command line, recommended)
├── build_exe.py # Build script
├── generate_and_push.bat # One-click generate and push batch
├── software/ # Local software directory
│ ├── CCleaner/
│ ├── EditPlus/
│ ├── everything/
│ ├── notepad++/
│ ├── SublimeText/
│ └── ...
├── logs/ # Log directory
└── README.md # Project documentation
- Python 3.7+
- Git
- Network connection
pip install requests PyQt5 gitpythonEdit the config.json file:
{
"git_platform": "github",
"github_repo": "https://github.com/shellsec/softgitup",
"gitlab_repo": "https://gitlab.com/your-username/softgitup",
"manager_base_path": "./software",
"sync_base_path": "",
"sync_time": "07:00",
"auto_start": true,
"auto_kill": true,
"git_mirrors": [
"https://gh-proxy.com/https://raw.githubusercontent.com/shellsec/softgitup"
],
"process_map": {
"notepad++": ["notepad++.exe"],
"NetTime": ["NetTime.exe", "NetTimeService.exe"]
},
"start_map": {
"notepad++": "notepad++.exe",
"NetTime": ["NetTimeService.exe", "NetTime.exe"]
},
"service_map": {
"NetTimeService.exe": "NetTimeSvc"
},
"start_after_update": [
"NetTime",
"everything",
"WinMemoryCleaner"
]
}Method 1: Use Compiled Executable (No Python Environment) ⭐⭐⭐⭐⭐
# Run the compiled exe file directly
sync_software.exeAdvantages:
- ✅ No Python installation required
- ✅ Small file size (5-15 MB)
- ✅ Fast startup
- ✅ Better performance
- ✅ Single file deployment
Method 2: Use Python Script
# Use complete sync tool (command line)
python sync_software.py
# Or use batch file (no Python environment required)
一键快速同步.bat# Scan local software and push to GitHub
python soft_manager.py
# Or use batch file for one-click operation
generate_and_push.bat# Start GUI sync tool (system tray)
python soft_sync.pyUse PyInstaller to package Python programs into executable files:
# Use build_exe.py script to package
python build_exe.pyBuild script provides multiple options:
- Build All Programs (Recommended) - Includes GUI and console versions
- Build Console Version Only - No GUI dependencies, avoid PyQt5 DLL issues
- Build GUI Version Only - Includes complete GUI functionality
- Clean Build Files - Clean temporary files
You can also use PyInstaller directly to compile sync_software.py:
# Basic compilation
pyinstaller --onefile --name=sync_software sync_software.py
# Optimized compilation (recommended)
pyinstaller --onefile --name=sync_software --clean --noconfirm sync_software.pyGenerated Files:
dist/sync_software.exe- Compiled executable file
sync_software.exe- Complete sync tool (console, recommended)SoftGitUp_Workflow.exe- Workflow tool (console)SoftGitUp_Manager.exe- Management tool (GUI)SoftGitUp_Sync.exe- Sync tool (GUI, system tray)SoftGitUp_Sync_Simple.exe- Simplified sync tool (console)
If you encounter ImportError: DLL load failed while importing QtWidgets error:
Solution 1: Use Nuitka Compilation (Recommended) ⭐⭐⭐⭐⭐
# Compile to native C++ code, no Python or DLL needed
python -m nuitka --standalone --onefile --windows-console-mode=disable --output-dir=dist sync_software.pyAdvantages:
- Smaller file size (5-15 MB)
- No DLL dependencies
- Fast startup
- Better performance
Solution 2: Use Console Version
# Select option 2, build console version
python build_exe.py
# Use the generated SoftGitUp_Sync_Simple.exeSolution 3: Use Python Script
# Run Python scripts directly to avoid packaging issues
python sync_software.pySolution 4: Install Visual C++ Redistributable
- Download and install Microsoft Visual C++ Redistributable
- Recompile GUI version
SoftGitUp_Workflow.exe- Workflow tool (console)SoftGitUp_Manager.exe- Management tool (GUI)SoftGitUp_Sync.exe- Sync tool (GUI, system tray)SoftGitUp_Sync_Simple.exe- Simplified sync tool (console)
- Update Software Files: Place new version software into
software/directory - Generate List: Run
python soft_manager.pyor use batch file - Push to GitHub: Automatically commit and push updates
- Sync to Other Devices: Run sync tool on other devices
# Use complete sync tool (recommended)
python sync_software.py
# Or use batch file (no Python environment required)
一键快速同步.batFeatures include:
- Automatic sync of all software
- Smart update detection
- Automatic process management
- Detailed logging
| Configuration Item | Description | Default Value |
|---|---|---|
git_platform |
Git platform type | "github" or "gitlab" |
github_repo |
GitHub repository address | - |
gitlab_repo |
GitLab repository address | - |
manager_base_path |
Management tool scan directory | ./software |
sync_base_path |
Sync tool download directory (empty uses project root) | "" (empty string) |
sync_time |
Auto sync time | 07:00 |
git_mirrors |
Git mirror source list | - |
download_timeout |
Download timeout (seconds) | 30 |
retry_times |
Retry times | 3 |
retry_delay |
Retry delay (seconds) | 5 |
log_level |
Log level | INFO |
check_interval |
Check interval (seconds) | 3600 |
| Configuration Item | Description | Default Value |
|---|---|---|
auto_kill |
Automatically close related processes before update | true |
auto_start |
Automatically start programs after update | true |
process_map |
Process mapping table, defines process names for each software | {} |
start_map |
Startup path mapping table, defines startup paths for each software (supports arrays) | {} |
service_map |
Service mapping table, maps service programs to Windows service names | {} |
start_after_update |
List of programs to automatically start after update | [] |
software_dirs |
Software directory mapping, controls update order | {} |
process_map is used to define processes that need to be closed during update, supports multiple processes:
{
"process_map": {
"notepad++": ["notepad++.exe"],
"NetTime": ["NetTime.exe", "NetTimeService.exe"],
"UltraEdit": ["uedit64.exe", "uedit32.exe"],
"system_good": ["putty.exe", "SmartDefrag-Pro.exe", "Ditto.exe"]
}
}start_map supports single program or multiple program startup:
-
Single Program (string):
{ "start_map": { "notepad++": "notepad++.exe" } } -
Multiple Programs (array): Start in order
{ "start_map": { "NetTime": ["NetTimeService.exe", "NetTime.exe"] } } -
Path Format:
- Relative Path (recommended): Relative to software directory
"NetTime": "NetTime.exe" // D:\Program Files\NetTime\NetTime.exe "NetTime": "bin/NetTime.exe" // D:\Program Files\NetTime\bin\NetTime.exe
- Absolute Path: Full path
"some_app": "C:/OtherPath/app.exe" // Full absolute path
- Relative Path (recommended): Relative to software directory
service_map is used to map service programs to Windows service names. The system will automatically use net start to start services:
{
"service_map": {
"NetTimeService.exe": "NetTimeSvc",
"Everything.exe": "Everything" // If Everything is installed as a service
}
}How it works:
- If a program is in
service_map, the system will usenet start [service name]to start the service - If a program is not in
service_map, the system will directly run the program file - Supports detection of services already running
start_after_update defines programs that need to be automatically started after update completion:
{
"start_after_update": [
"NetTime",
"everything",
"WinMemoryCleaner",
"notepad++"
]
}Note:
- If
start_after_updateis an empty array[], all software will automatically start after update (whenauto_start: true) - If
start_after_updatehas values, only software in the list will automatically start after update
Software update order is determined by the order in software_dirs in config.json:
{
"software_dirs": {
"WinMemoryCleaner": "WinMemoryCleaner", // First update
"NetTime": "NetTime", // Second update
"system_good": "system_good" // Last update
}
}How it works:
- System updates software sequentially according to the order configured in
software_dirs - If software exists in remote list but not configured in
software_dirs, it will be updated last according to remote list order - You can control update priority by adjusting the order in
software_dirs
sync_base_path supports two configuration methods:
-
Auto-use project root directory (Recommended):
"sync_base_path": ""
- When configured as empty string, software will be downloaded to project root directory
- Example:
E:\GITHUB\softgitup\NetTime\,E:\GITHUB\softgitup\everything\ - Advantages: No administrator privileges required, easy to manage, easy to backup and migrate
-
Specify custom path:
"sync_base_path": "D:/Program Files"
- Software will be downloaded to specified directory
- Example:
D:\Program Files\NetTime\,D:\Program Files\everything\ - Note: If directory doesn't exist, system will automatically create it
Use gh-proxy.com as Git accelerated download source:
"git_mirrors": [
"https://gh-proxy.com/https://raw.githubusercontent.com/shellsec/softgitup"
]- Enterprise Deployment: Supports private deployment, suitable for intranet environments
- Domestic Access: GitLab.com or self-hosted instances, more stable access
- Rich Features: Built-in CI/CD, project management and other enterprise features
- Data Security: Complete control over data storage location
- Log in to GitLab (GitLab.com or self-hosted instance)
- Create a new project
- Push code to GitLab repository
git remote add gitlab https://gitlab.com/your-username/softgitup.git
git push gitlab masterEdit config.json file:
{
"git_platform": "gitlab",
"gitlab_repo": "https://gitlab.com/your-username/softgitup",
"git_mirrors": [
"https://gitlab.com/your-username/softgitup/-/raw/master"
]
}Important Configuration Items:
git_platform: Set to"gitlab"gitlab_repo: Fill in your GitLab repository addressgit_mirrors: GitLab Raw file URL format:https://gitlab.com/user/repo/-/raw/branch
Run sync test:
python sync_software.pyOr use batch file:
一键快速同步.batIf you need to switch back to GitHub, just modify git_platform:
{
"git_platform": "github",
"github_repo": "https://github.com/shellsec/softgitup",
"git_mirrors": [
"https://gh-proxy.com/https://raw.githubusercontent.com/shellsec/softgitup"
]
}If you have a self-hosted GitLab instance:
- Configure Repository Address:
{
"git_platform": "gitlab",
"gitlab_repo": "https://your-gitlab-instance.com/your-username/softgitup",
"git_mirrors": [
"https://your-gitlab-instance.com/your-username/softgitup/-/raw/master"
]
}-
Private Repository Access:
- If the repository is private, you need to create a Personal Access Token in GitLab
- Include token in URL:
https://oauth2:YOUR_TOKEN@your-gitlab-instance.com/user/repo/-/raw/master
-
Branch Configuration:
- GitLab default branch may be
masterormain - Ensure branch name in
git_mirrorsmatches actual branch name
- GitLab default branch may be
Q: Can GitLab and GitHub be used simultaneously?
A: Yes, configure mirror sources for both platforms in git_mirrors, system will try in order.
Q: How to know which platform is currently being used? A: Check log files, they will show the mirror source URL being used.
Q: How to configure GitLab private repository? A: Include access token in URL, or use GitLab's Deploy Token.
- Sync common software across multiple devices
- Automatically update software to latest version
- Backup software configurations and settings
- Unified management of employee common software
- Batch deployment and software updates
- Software version control and rollback
- Manage development environment tools
- Quickly set up development environment
- Toolchain version management
The system supports automatically closing related processes before update and automatically starting programs after update:
-
Close Processes Before Update:
- When
auto_kill: true, the system will automatically close processes defined inprocess_mapbefore downloading files - Supports closing multiple processes (e.g., NetTime main program and service program)
- Uses Windows
taskkillcommand to force close processes
- When
-
Start Programs After Update:
- When
auto_start: true, the system will automatically start programs after file update completion - Determines which programs to start based on
start_after_updatelist - Supports single program or multiple program startup (array configuration)
- Supports relative path and absolute path configuration
- Automatically identifies Windows services and uses
net startto start
- When
-
Windows Service Support:
- Automatically detects if a program is in
service_map - If it's a service, uses
net start [service name]to start - If it's a regular program, directly runs the executable file
- Supports detection of services already running
- Automatically detects if a program is in
-
Update Order Control:
- Updates according to the order in
config.jsonsoftware_dirs - Ensures software with dependency relationships are updated in correct order
- Updates according to the order in
-
Workflow:
Start sync → In order of software_dirs → Check auto_kill → Close related processes → Download update files → Check auto_start → Check start_after_update → Check service_map → Start service or program
# Update only specific software
python -c "from soft_manager import SoftManager; SoftManager().generate_list_file('everything')"- Support custom sync time
- Background silent updates
- System tray notifications
- Automatic process management
- Detailed sync logs
- Error tracking and debugging
- Configurable log levels
- Process close and startup log records
Q: How to use the version without Python environment?
A: Use the PyInstaller compiled sync_software.exe:
- Run directly:
sync_software.exe - Advantages: No Python installation, single file deployment, easy to use
- Download: Get the compiled exe file from the project release page
Q: How to compile sync_software.exe? A: Use PyInstaller compilation:
# Use build_exe.py script to package
python build_exe.py
# Select option 2: Build console version only
# Or use PyInstaller directly
pyinstaller --onefile --name=sync_software --clean --noconfirm sync_software.pyQ: After compilation, running reports error "DLL load failed while importing QtWidgets"? A: This is a PyQt5 DLL dependency issue. Suggestions:
- Use console version:
python build_exe.pyselect option 2 - Run Python scripts directly:
python sync_software.py - Or use batch file:
一键快速同步.bat(no Python environment required) - Install Visual C++ Redistributable and recompile
Q: What to do if sync fails? A: Check network connection and GitHub repository permissions, ensure using correct Git acceleration source.
Q: File modification time doesn't match? A: This is usually because file content has changed. The system will automatically download the latest version.
Q: How to add new software? A: Place software in software directory, add software name in config.json, then run management tool.
Q: How to configure automatic process closing and program startup? A: Configure in config.json:
- Set
auto_kill: trueandauto_start: true - Add process names corresponding to software in
process_map - Add software startup paths in
start_map(supports relative and absolute paths) - Add program names that need automatic startup in
start_after_update
Q: How to configure startup paths? A: Supports two methods:
- Relative path:
"NetTime": "NetTime.exe"or"NetTime": "bin/NetTime.exe" - Absolute path:
"some_app": "C:/Path/app.exe"
Q: system_good contains multiple programs, how to configure?
A: Add all process names that need to be closed in the system_good array in process_map:
"system_good": ["putty.exe", "SmartDefrag-Pro.exe", "Ditto.exe", ...]Q: How to start multiple programs?
A: Use array configuration in start_map:
"NetTime": ["NetTimeService.exe", "NetTime.exe"]The system will start programs sequentially in array order.
Q: How to configure Windows services?
A: Configure service program to service name mapping in service_map:
"service_map": {
"NetTimeService.exe": "NetTimeSvc"
}The system will automatically use net start command to start the service.
Q: How to control software update order?
A: Adjust the order in software_dirs in config.json. The system will update software sequentially according to the configured order.
Q: What to do if service startup fails? A: Ensure the service is installed. You can install the service through:
- Use the installation script provided by the software (e.g., NetTime's
ChangeNetTimePath.bat) - Or manually use
sc createcommand to install the service
Q: How to use DNS configuration scripts? A: Three DNS configuration scripts are provided in the system_good directory:
Configure_18bit_DNS.bat- Configure 18bit encrypted DNS (blocks ads, malicious websites)Configure_AdGuard_DNS.bat- Configure AdGuard DNS (free, blocks ads, trackers)Restore_Default_DNS.bat- Restore default DNS settings Usage: Right-click the script and select "Run as administrator". After configuration, verify in system settings that DNS shows "Encrypted".
Q: DoH not effective after DNS configuration? A: If DoH is not effective after configuration, try:
- Restart network adapter (disable and re-enable)
- Manually enable DoH in system settings:
- Settings → Network & Internet → Ethernet (or WLAN) → Hardware properties → DNS server assignment
- Set "Preferred DNS encryption" and "Alternate DNS encryption" to "On (manual template)"
- Restart computer
- Some Windows 11 versions may require manual DoH configuration through system settings
Q: Where are software downloaded when sync_base_path is empty?
A: When sync_base_path is configured as empty string "", software will be downloaded to project root directory (script location). For example:
- Project is at
E:\GITHUB\softgitup\ - Software will be downloaded to
E:\GITHUB\softgitup\NetTime\,E:\GITHUB\softgitup\everything\, etc. - Advantages: No administrator privileges required, easy to manage
Q: How to specify software download to other directory?
A: Configure sync_base_path in config.json:
"sync_base_path": "D:/Program Files"Software will be downloaded to specified directory, and the directory will be created automatically if it doesn't exist.
# View management tool logs
tail -f logs/manager.log
# View sync tool logs
tail -f logs/sync.log
# View complete sync logs
tail -f logs/complete_sync.logIf you encounter problems, please:
- Check log files for detailed error information
- Check network connection and GitHub repository permissions
- Try using console version to avoid GUI dependency issues
- Submit Issue to GitHub repository
- Support more cloud storage platforms (Gitee, GitLab, etc.)
- Add software version management functionality
- Support incremental updates and compressed transmission
- Add Web management interface
- Support plugin system
Welcome to submit Issues and Pull Requests!
- Fork the project
- Create feature branch
- Commit changes
- Push to branch
- Create Pull Request
MIT License
- Configuration Guide - Detailed configuration parameters (Chinese)
- Local Server Guide - Local file server setup guide (Chinese)
- 手机隐私安全配置指南 - Complete mobile privacy configuration guide (Chinese)
- Mobile Privacy & Security Guide - Complete mobile privacy configuration guide (English)
- 常用工具开源下载 - Open-source download links for common tools (Chinese)
- Software & privacy notes (source list) - Long-form curated list aligned with
software/system_good/and related paths (mostly Chinese)
Note: Please ensure compliance with relevant software usage license agreements. This tool is only for personal learning and legal purposes.