Skip to content

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.

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 (fpga or embedded) design with its own requirements, simulations, repo, and phase.

For the bigger picture, see Core concepts.

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

Create a project inside a workspace, choosing its type:

Terminal window
suya project create --name <name> --workspace <workspace-id> --type fpga

For an embedded project, pass --type embedded. You can optionally set a URL slug or pin a device at creation time:

Terminal window
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.

List the projects in a workspace:

Terminal window
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):

Terminal window
suya project show

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:

Terminal window
# Both work the same once .subaya/config.toml points at a project:
suya project show
suya 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.

Every project moves through phases that shape the UI and the available tools:

Concept → Plan → Implement → Simulate → Verify

Get or set the current phase:

Terminal window
suya project phase

Projects can be associated with a hardware device from the catalog. Search the catalog, inspect a part, and assign one to your project:

Terminal window
suya device search --type embedded
suya 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.