Skip to main content

scratch-remixtree 🫚

PyPI version License Alastrantia All tests

Tools to rebuild Scratch's remix tree feature!
🌐 Try the web version instantly: https://remixtree.alass.dev
#BringBackRemixTrees

Like it? Star the repo to help others find it and make me feel good 🥺

Demos :DD

CLI demo Web demo

CLI Version: Project 948573479
remixtree 948573479 --output tree.txt --verbose

Web Version: Try it instantly at remixtree.alass.dev!

What is this?

Scratch removed the remix tree feature without any warning... So, here we go again, as a webapp and a CLI!

This tool fetches a project's remixes and builds a tree showing how all the remixes connect, using the official scratch API.

Features

  • Web version built with FastAPI, CLI built with rich
  • Async, can create large trees decently fast
  • Export to JSON or CSV, not just plain text (finally!)
  • Batch mode: throw a bunch of project IDs at it and it builds em all
  • --stats shows loves/views/faves on every project (web shows em too now)
  • Optional verbose mode to go crazy (CLI-only)
  • Save the full remix tree to a file if ya want to
  • Supports max depth if you wanna show empathy for the Scratch Servers (CLI-only)
  • Works on Linux, macOS, and Windows (Python 3.9+) (hopefully, if not, tell me)

Installation for the CLI

Recommended: using pipx (isolated, should-work):

pip install --user pipx
pipx install remixtree

Alternatively:

pip install remixtree

Basic Usage

(This is only for the CLI, the WebApp is pretty self-explanatory)

Example:

remixtree 1223809053 --depth 3 --output tree_output.txt

A few more:

remixtree 1223809053 --stats                 # show loves/views/faves inline
remixtree 1223809053 -o tree.json            # format guessed from the extension
remixtree 1223809053 -o tree.csv             # ...same deal, spreadsheet time
remixtree 111 222 333 -o tree.txt            # batch! saves tree_111.txt, tree_222.txt, ...

More options:

-h, --help: 
    get a list of flags like this one
-d, --depth:
    specify how deep the tree should go, default is unlimited
-t, --timeout:
    request timeout in seconds, default is 300
-v, --verbose:
    just try it, you'll see for yourself
-o, --output:
    probably the most important flag, specify where the tree should be saved
-f, --format:
    txt / json / csv. skip it and i'll guess from the -o file extension (else txt)
-s, --stats:
    show loves/views/faves next to each project
-c, --color:
    enable color coding by depth (disabled by default), will use rich color formatting

Example Output

└── root(1196834984)
    ├── » planet b «(1198230426)
    │   └── » planet b « remix(1212924547)
    ├── Apex Construction (BB7 Entry)(1198230627)
    ├── pinnacle constructions(1198232264)
    ├── R1(1198238918)
    │   └── R1 remix(1223273999)
    ├── ⬠ equilux branding (1198261493)
    ├── BB7 -  Keystone Works(1198288240)
    ├── AEDIFI(1198372015)
    ├── Mace - BB7 R1(1198407780)
    ... 

Feature Tracker

  • ASCII tree visualization
  • Async fetching
  • Depth limiting
  • Verbose mode
  • File output
  • Color coding
  • Interactive tree navigation (yes, but not the original tree yet)
  • Export to JSON/CSV
  • Web interface
  • Batch processing
  • Search/filter on the web (big trees get unwieldy fast)

Metadata

Release files for remixtree 0.1.19

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

Source distribution (sdist)

Source distribution for remixtree 0.1.19
File Size Uploaded
remixtree-0.1.19.tar.gz 6.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for remixtree 0.1.19
File Interpreter ABI Platform
remixtree-0.1.19-py3-none-any.whl Python 3 none any Details

Total release size: 6.2 MB

Release files / remixtree-0.1.19.tar.gz

Download URL remixtree-0.1.19.tar.gz
Size 6.2 MB
Tags Source
SHA-256 checksum
How to use checksums
6d7e9136895304247d758aadfe3735939af46e60255455ef7a2b91b7a629a440
BLAKE2b-256 checksum
How to use checksums
f33a5b4369e2a463bfc95f8fe606723053b63dd3325f404c84054f32ee86e1dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / remixtree-0.1.19-py3-none-any.whl

Download URL remixtree-0.1.19-py3-none-any.whl
Size 14.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d14ff7c720c796f3457d06a9cc31cab17d7964f7f74dfcacff5241c895452360
BLAKE2b-256 checksum
How to use checksums
a9c65edf57f65349e9df20c078859c9d420ba20d84976d941c89e45de4c8cf7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.1.19 This release

2 release files

0.1.18

2 release files

0.1.11

2 release files

0.1.10

1 release file

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

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