The set-context command sets a background context for your CLI sessions, so you don't have to specify the project ID in every command. The context is saved to a default .optitech file in the current directory, or to a named context file of your choice, and stays in place until you reset it or remove the file.
Prefer link or checkout
For most workflows, use optitech link to bind a directory to a project or optitech checkout to switch branches. Use set-context when you need to set context values directly (for example, in scripts).
How the CLI finds your `.optitech` file
When you run a command, the CLI starts in your current directory and checks for a .optitech file. If it does not find one, it checks the parent directory, then the parent of that, and so on until it finds a .optitech file or reaches your home directory. This means you can run commands from any subdirectory of a linked project without re-specifying --project-id.
To write context to a specific file or location, use --context-file.
Usage
optitech set-context [options]To save the context to a file other than the default .optitech file, add the global --context-file <your_context_file> option. You can switch contexts by providing different files.
Options
Set at least one of these options.
Using the default context file
Set the context to the default .optitech file:
optitech set-context --project-id patient-frost-50125040 --org-id org-bright-sky-12345678List all branches for this project with branches list, without including --project-id or --org-id, even if you belong to multiple organizations or have multiple projects:
optitech branches list┌──────────────────────────┬─────────────┬─────────┬──────────────────────┬──────────────────────┐
│ Id │ Name │ Default │ Created At │ Updated At │
├──────────────────────────┼─────────────┼─────────┼──────────────────────┼──────────────────────┤
│ br-raspy-meadow-26349337 │ development │ false │ 2023-11-28T19:19:11Z │ 2023-12-01T00:18:21Z │
├──────────────────────────┼─────────────┼─────────┼──────────────────────┼──────────────────────┤
│ br-curly-bar-82389180 │ main │ true │ 2023-10-23T12:49:41Z │ 2023-12-01T00:18:21Z │
└──────────────────────────┴─────────────┴─────────┴──────────────────────┴──────────────────────┘Using a named context file
Set the context to the context file of your choice:
optitech set-context --project-id plain-waterfall-84865553 --context-file Documents/MyContextList all branches with branches list. The context file provides the project:
optitech branches list --context-file Documents/MyContext┌─────────────────────────────┬─────────────┬─────────┬──────────────────────┬──────────────────────┐
│ Id │ Name │ Default │ Created At │ Updated At │
├─────────────────────────────┼─────────────┼─────────┼──────────────────────┼──────────────────────┤
│ br-soft-base-86343042 │ development │ false │ 2023-11-21T18:41:47Z │ 2023-12-01T00:00:14Z │
├─────────────────────────────┼─────────────┼─────────┼──────────────────────┼──────────────────────┤
│ br-young-bush-89857627 │ main │ true │ 2023-11-21T18:00:10Z │ 2023-12-01T03:33:53Z │
├─────────────────────────────┼─────────────┼─────────┼──────────────────────┼──────────────────────┤
│ br-billowing-union-41102466 │ staging │ false │ 2023-11-21T18:44:22Z │ 2023-12-01T08:32:40Z │
└─────────────────────────────┴─────────────┴─────────┴──────────────────────┴──────────────────────┘note
These two branches list commands use independent contexts in the same account: the default .optitech file points to patient-frost-50125040, while the named context file points to plain-waterfall-84865553. You can set as many context files as you'd like, using unique names or different directories.
Setting context when creating a new project
Use --set-context to set the project context at creation time:
optitech projects create --name MyLatest --set-contextThis creates a hidden .optitech file by default with the following context:
{
"projectId": "quiet-water-76237589"
}Commands that would normally require --project-id now default to this context.
Reset or remove context
To clear the current context, either:
-
Run the
set-contextcommand with no options:optitech set-context -
Delete the
.optitechfile (or your custom--context-file):rm .optitech # Or for a custom context file: rm your_context_file
.gitignoreon first create
The first time a .optitech file is created in a directory, the CLI adds .optitech to .gitignore in that same folder:
- If no
.gitignoreexists, the CLI creates one with a single.optitechline. - If
.gitignorealready exists, the CLI appends.optitechonly if it is not already listed.
This keeps local project settings out of git by default. If you want to commit .optitech and share context with your team, remove the entry from .gitignore. The CLI will not re-add it when updating an existing .optitech file.
note
OptiTech does not save any confidential information to the context file (for example, auth tokens). You can safely commit this file to your repository or share with others.