Skip to content
/ cli Public

🧩 A CLI to interact with the OpenSASS ecosystem.

License

Notifications You must be signed in to change notification settings

opensass/cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧩 OpenSASS

Crates.io docs License

🐧 Linux (Recommended) πŸͺŸ Windows
cargo install opensass cargo install opensass
Download Executable File Download .exe File
os -h os -h

🧩 OpenSASS: A CLI tool for downloading reusable OpenSASS components from crates.io and integrating them into your WASM frontend projects.

πŸ“– Table of Contents

πŸš€ Installation

To install the CLI:

cargo install opensass

Or build from source:

git clone https://github.com/opensass/cli.git
cd cli
cargo build --release

❓ What is OpenSASS?

OpenSASS is a modular CLI tool that enables you to:

  • Download reusable Rust/WASM components published to crates.io.
  • Automatically resolve and import component-specific dependencies and features.
  • Copy relevant source files directly into your src/ directory.
  • Seamlessly integrate with frontend frameworks like Yew, Leptos, and Dioxus.

It simplifies the process of reusing frontend Rust code across projects.

✨ Features

  • 🧩 Add OpenSASS component-based crates with a single command.
  • βš™ Automatically updates Cargo.toml with proper features.
  • πŸ” Copies only the src/ files related to the specified feature.

πŸ’‘ Usage

Add an OpenSASS component to your project

os add i18nrs yew

This will:

  • Download the i18nrs crate.
  • Extract files only related to the yew feature.
  • Copy src/ files into your project.
  • Update your Cargo.toml dependencies and feature flags.

πŸ§ͺ Examples

Using with Yew

os add radiors yew

Using with Leptos

os add radiors lep

Using with Dioxus

os add radiors dio

πŸ“¦ Roadmap

  • Add components by feature.
  • Auto-update lib.rs & Cargo.toml.
  • Initialize custom WASM templates.
  • TUI support.
  • VS Code extension?

🀝 Contributing

Contributions are welcome! Please:

  1. Fork this repo
  2. Create your branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -am 'Add new feature')
  4. Push and open a PR

πŸ“„ License

Licensed under the MIT License.