Repository navigation
Home
github-actions[bot] edited this page Oct 18, 2026
·
2 revisions
SPAS keeps private and environment-specific assets in your local project workspace and synchronizes them with a separate GitHub repository. The managed assets remain untracked in your main project repository.
- Installation — Download prebuilt binaries, verify checksums, or compile from source.
- Quick Start Guide — Connect your workspace, select private files, and run your first synchronization.
- Command Reference — Complete syntax, flags, automation recipes, and exit code reference for all CLI commands.
- JSON Output Schema — Structured payload contracts and schema versioning for CI/CD automation.
-
Troubleshooting Guide — Diagnose errors with
spas doctor, resolve merge conflicts, and sanitize debug logs. - Safety & Limitations — Review security models, worktree constraints, and supported file types.
| Guide | Description |
|---|---|
| Installation | Installation instructions for Linux, macOS, and Windows with SHA-256 verification and shell completion setup. |
| Quick Start | Step-by-step walkthrough linking a workspace, managing assets, and syncing across developer machines. |
| Command Reference | Detailed documentation of all commands (link, add, remove, sync, status, diff, doctor, unlink). |
| JSON Output Schema | Machine-readable JSON output schemas, error envelopes, and automation payloads. |
| Schema Contracts | Independent persisted-state and CLI JSON versions, compatibility policy, and recovery field reference. |
| Troubleshooting | Practical solutions for common errors, conflict resolution procedures, and recovery flows. |
| Safety & Limitations | Security boundaries, filesystem concurrency models, supported file modes, and resource limits. |
SPAS separates project files from managed assets while keeping both in the workspace:
┌─────────────────────────────────────────────────────────────────┐
│ Project Workspace │
│ │
│ ┌────────────────────────┐ ┌─────────────────────────┐ │
│ │ Tracked Files │ │ Managed Assets │ │
│ │ (Main Git Repo) │ │ (SPAS Managed) │ │
│ └───────────▲────────────┘ └────────────▲────────────┘ │
│ │ │ │
│ │ Excluded from Main Repo │ │
│ │ ◄───────────────────────── │ │
│ │ (.git/info/exclude) │ │
└───────────────┼────────────────────────────────┼────────────────┘
│ │
Normal Git Ops SPAS Sync
(git push / git pull) (spas sync / checkout)
│ │
▼ ▼
Main Git Remote Linked GitHub Repository
(Public or Shared Repo) (Dedicated Asset Storage)
- Project Repository: Your primary Git repository containing application source code. Managed assets are kept untracked here via local exclusion rules.
- Project Workspace: The active working tree of your project repository where your code, build scripts, and managed assets live.
- Linked Repository: The dedicated GitHub repository (public or private) that stores and versions your managed assets.
-
Managed Asset: Any regular file enrolled with
spas addwhose contents and version history are synced to the linked repository. - Managed Checkout: The isolated local clone maintained by SPAS in your user data directory to stage, commit, and merge assets safely before writing them to the workspace.
SPAS requires:
- Runtime Requirement: Git 2.43.1 or newer.
- Worktree Model: One project worktree per Git common directory.
- Branching: One linked repository and fixed branch per project workspace.
-
File Modes: Standard regular files (
100644standard and100755executable).
Note
SPAS deliberately rejects symlinks, directory junctions, Git submodules, Git LFS pointers, and directory ownership wildcards to ensure deterministic cross-platform synchronization. For complete details, see Safety and Limitations.
- 💬 Ask a question or share feedback: GitHub Discussions
- 🐛 Report a bug: Issue Tracker
- 🔒 Report security vulnerabilities: GitHub Security Advisories