Workspaces & projects
Everything you do in Subaya lives inside a project. This guide shows how
projects are organized, how to create and inspect them from the CLI, and how the
local .subaya/config.toml ties a working directory to a project.
Tenancy: org → workspace → project
Section titled “Tenancy: org → workspace → project”Subaya nests three levels of ownership:
- Organization — your account’s top-level tenant. Billing, members, and licenses live here.
- Workspace — a grouping of projects within an org (a team or a product line). Every project belongs to exactly one workspace.
- Project — the unit of work: a typed (
fpgaorembedded) design with its own requirements, simulations, repo, and phase.
For the bigger picture, see Core concepts.
Project types
Section titled “Project types”A project is created as one of two types, which shapes the toolchains available to it:
| Type | For | Toolchains |
|---|---|---|
fpga |
RTL / FPGA designs | RyuSim, Verilator, Icarus, Questa, Vivado xsim, Quartus |
embedded |
MCU firmware (e.g. STM32) | CubeMX pin-planning, Renode |
Creating a project
Section titled “Creating a project”Create a project inside a workspace, choosing its type:
suya project create --name <name> --workspace <workspace-id> --type fpgaFor an embedded project, pass --type embedded. You can optionally set a URL slug
or pin a device at creation time:
suya project create \ --name blinky \ --workspace <workspace-id> \ --type embedded \ --slug blinky \ --device <device-id>suya project init is an alias of suya project create.
Listing and inspecting projects
Section titled “Listing and inspecting projects”List the projects in a workspace:
suya project list --workspace <workspace-id>Show the details of a single project. With no project given, this defaults to the
project recorded in the local .subaya/config.toml (see below):
suya project showThe local config: .subaya/config.toml
Section titled “The local config: .subaya/config.toml”When you work against a project from a directory, Subaya records the project id in
.subaya/config.toml. Most commands that take a --project flag default to this
value, so you can run them without repeating the id:
# Both work the same once .subaya/config.toml points at a project:suya project showsuya project show --project <project-id>This is what lets suya sim run, suya arch ..., suya rag search --scope project:<id>,
and similar commands “just know” which project they belong to.
Phases
Section titled “Phases”Every project moves through phases that shape the UI and the available tools:
Concept → Plan → Implement → Simulate → Verify
Get or set the current phase:
suya project phaseDevices
Section titled “Devices”Projects can be associated with a hardware device from the catalog. Search the catalog, inspect a part, and assign one to your project:
suya device search --type embeddedsuya device show <device-id>suya device set <device-id>You can also pin a device at creation time with --device <device-id> on
suya project create.
Next steps
Section titled “Next steps”- Running simulations — run a simulation end to end.
- Cloud toolchains & CubeMX — cloud toolchains and embedded pin-planning.
- CLI: project — the full
suya projectreference. - CLI: device — the full
suya devicereference.