Projects (Tellurio Studio)#
Warning
Before running any code, ensure you are logged in to the Afnio backend (afnio login).
See Logging in to Afnio Backend for details.
On Tellurio Studio the top-level unit is an Organization. An Organization contains multiple Projects; Projects in turn group Runs, artifacts, and collaborators so teams can manage experiments, share results, and control access to datasets and checkpoints.
Why use Projects:
Organize related experiments and checkpoints in a single namespace.
Share experiments with teammates by adding project members.
Manage visibility and access control for reproducibility and collaboration.
Note
Billing is handled at the Organization level — usage (Runs, optimization hours, storage, etc.) is billed to the parent Organization.
Creating and Managing Projects#
You can create and manage projects from the Tellurio Studio
UI (Projects → Create new Project) or programmatically via
afnio.tellurio.project helpers.
Note
afnio.tellurio is the client module you use
to interact with Tellurio Studio: login, create
or retrieve Projects, create
Runs, log metrics, and upload artifacts.
te.init(...) (see Runs and Experiments) will
automatically create a Project if it does
not exist; when auto-creating, Afnio uses a conservative default visibility
(RESTRICTED). If you need a different visibility, or want to invite members to the
project, create the project explicitly in the web UI or via the
afnio.tellurio.project APIs before
creating your Run.
Example: create a project programmatically
from afnio.tellurio.project import create_project
proj1 = create_project(
namespace_slug="username_or_org",
display_name="My Project",
visibility="TEAM",
)
print(f"Created project: {proj1.display_name} (UUID: {proj1.uuid})")
Output:
Created project: My Project (UUID: ff93c442-514a-4874-a3a2-4cd178810ced)
Example: create or retrieve a project programmatically
from afnio.tellurio.project import get_project
proj2 = get_project(
namespace_slug="username_or_org",
project_slug="my-project",
)
print(f"Retrieved project: {proj2.display_name} (UUID: {proj2.uuid})")
Output:
Retrieved project: My Project (UUID: ff93c442-514a-4874-a3a2-4cd178810ced)
Project visibility#
Projects support several visibility levels that control who can read and write within a Project. Use the table below to pick the appropriate visibility for collaboration or sharing:
Visibility |
Read access |
Write access |
|---|---|---|
RESTRICTED (default) |
Only explicit project members (users added to the project) |
Only explicit project members (users added to the project) |
TEAM |
Any member of the parent organization |
Any member of the parent organization |
PUBLIC |
Any authenticated user (login required) |
Any member of the parent organization |
OPEN |
Anyone, including anonymous users |
Anyone, including anonymous users |
Project Members and Collaboration#
Project members are users explicitly added to a Project
via the Tellurio Studio web UI
(Projects → [Your Project] → Overview → Members → Add new Member).
Members can be granted read and write access according to the project’s visibility
and membership settings. Use project membership to give teammates access to runs,
logs, and artifacts without making experiments public.
Recommended Workflow:#
Create or select a Project for your experiments.
Use
te.init(...)or theafnio.telluriohelpers to start Runs within that project so logs, costs, and artifacts are associated automatically.When you need fine-grained control (team onboarding, public release), manage visibility and members in the Tellurio Studio UI or via the
afnio.tellurio.projectAPI.