Command-line tool to fetch, push or sync local filesystem against Supernote Cloud
- Python 100%
| docs | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| api.py | ||
| cli.py | ||
| cli_commands.py | ||
| cli_common.py | ||
| cli_deps.py | ||
| cli_parser.py | ||
| cloud_client.py | ||
| cloud_config.py | ||
| cloud_remote.py | ||
| cloud_transfer.py | ||
| LICENSE | ||
| login.py | ||
| pyproject.toml | ||
| README.md | ||
| supersync.py | ||
| sync_display.py | ||
| sync_root_check.py | ||
| sync_state.py | ||
| token_env_file.py | ||
| tree_terminal.py | ||
| uv.lock | ||
SuperSync
Python tooling for the Supernote Cloud API: login, upload, download, listing, deletion, one-way and two-way sync (with SQLite state, conflict copies, local trash, and sync history).
Features
- JWT login helper (
login.py) and shared API session (api,cloud_*modules) - One-way cloud → local (
sync_down,downloadCLI) and local → cloud (uploadCLI /upload_file) - Two-way
syncwith MD5/mtime checks, conflict filenames, deletion handling, and lock file - CLI:
list,delete,history,status,trash - Compact terminal tree output (
tree_terminal,sync_display)
Full behavior and options live in the docs/ folder so this file stays short.
Requirements
- Python 3.10+
- Recommended: uv or
pip
Install
git clone <this-repo>
cd supersync
uv venv && source .venv/bin/activate # or: python -m venv .venv
uv pip install -e .
# or: pip install -e .
cp .env.example .env # then edit: API base, token after login, sync dir
Quick start
python login.py # validates or obtains token; writes SUPERNOTE_TOKEN to .env (or SUPERNOTE_TOKEN_ENV_FILE)
python supersync.py # smoke test: user info, capacity, root listing
supersync --help # CLI
supersync sync --directory ~/Sync # two-way sync (see docs for scoped paths)
Documentation
| Topic | Link |
|---|---|
| Doc index | docs/README.md |
| Environment variables | docs/configuration.md |
| CLI commands | docs/cli.md |
| Sync & state DB | docs/sync.md |
| Python API | docs/python-api.md |
| Development & tests | docs/development.md |
| Troubleshooting | docs/troubleshooting.md |
License
MIT — see LICENSE.
Contributing
Issues and PRs welcome; please run ruff and pytest before submitting.
Acknowledgments
Inspired by sncloud for API discovery. Supernote Cloud API usage is unofficial / reverse-engineered.