Projects are available on paid plans. If you need access to test them, book a call with us.
What projects include
A project can define:- One, multiple, all, or no connected repositories
- Workspace skills that should be available in every session
- Repository dependencies to install before sessions start
- A setup script for additional project-specific preparation
- One or more session sizes that people can choose when starting a session
- A daily refresh schedule
Create a project
Prerequisites:- You are on a paid plan.
- You have workspace admin access.
- Any repositories you want to include are already connected to Tembo.
- Open Settings > Projects.
- Click New project.
- Choose a name, icon, and color.
- Select the repositories to make available in project sessions.
- Choose whether to include workspace skills and install repository dependencies.
- Under Advanced setup, optionally add a setup script.
- Select the session sizes the project should support.
- Optionally enable Refresh every day and choose a time.
- Click Create project.
- Open the project and click Build environment.
Start a session from a project
Before you start a session, open the project and size selector in the session composer. Choose a project, then choose one of its supported session sizes. Selecting a project also selects the repositories included in that project. You can change the project before the session starts, but not while a session is running.Project environment variables
Add environment variables to a project when you only need them while that project’s environments are built. Project variables are combined with workspace-wide environment variables. If both scopes use the same key, the project value takes precedence. To add project-level environment variables:- Open Settings > Projects.
- Select the project.
- Under Environment variables, click Create Secret.
- Add a single variable or bulk import
.env-style contents. - Click Create Secret.
- Build or rebuild the project’s environment to apply the variables.
Setup script
Use the setup script for preparation that is not handled by repository dependency installation ortembo.nix. Tembo runs the script while building the project’s environments, after it clones the selected repositories.
The script has access to workspace-wide environment variables and any environment variables added to the project. Anything the script installs or writes to disk becomes part of the prepared environment.
Keep setup logic in your repository
To version your setup logic with the rest of your code, commit a script to your repository and call it from the project setup script. For example, if a repository namedmy-app contains scripts/tembo-setup.sh, use:
/workspace. Tembo clones a repository with a unique name into /workspace/<repository-name>. Repository names are lowercased, and unsupported characters are replaced with hyphens. If multiple selected repositories resolve to the same directory name, Tembo clones each one into /workspace/<repository-id>-<repository-name> instead.
Session sizes and daily refreshes
A project must support at least one session size. If you select several sizes, Tembo builds and maintains a separate prepared environment for each one. People starting a session from the project can choose among those sizes. Enable Refresh every day to pull the latest repository changes and run the project’s setup again each day. The refresh time is shown in your local time. You can also open a project and click Rebuild environment at any time. A rebuild pulls the latest repository changes and reruns setup for every selected size. New sessions use an environment when it is ready; running sessions are not affected. If a rebuild fails, the current prepared environments remain active.When to use projects
In general, you should always use a project, even if your workspace only needs one. A project gives sessions a consistent set of repositories, tools, and defaults while reducing setup time. Use projects when a team repeatedly starts sessions with the same context or spends meaningful time on environment setup, for example:- Large repositories or monorepos
- Slow package installs
- Build systems with expensive setup steps
- Workflows that use a consistent set of repositories
- Teams that rely on shared workspace skills
- Work that needs different prepared environments or session sizes