Variable or secret
A secret is write-only. Once saved, nobody can read the value back, not even an admin. To change it, type a new value. To keep it, leave the field blank. The State column shows Set, Not set or Will replace when saved.
Where to set them
Open Settings. Each scope has its own page:1
Pick the tab
Choose Variables or Secrets. Each tab shows a count.
2
Add a row
Click New variable or New secret, then enter a name and a value.
3
Save
Click Save changes. Nothing is stored until you do. Discard changes drops your edits.
.env text instead. List view switches back.
Saving sends the whole list for that scope. A name you remove from the list is deleted.
When a name is set in several places
The most specific scope wins:API_URL is set in the organization and in a repository, runs on that repository get the repository value. Names that appear in only one scope are all kept.
Limits and name rules
These names are reserved and are refused on save:
GITHUB_TOKENandGH_TOKEN. Bellows issues its own GitHub token for each run (see Connections).- Any name starting with
LD_, plusGCONV_PATH,GLIBC_TUNABLES,LOCPATH,NLSPATHandMALLOC_TRACE. - Names Bellows uses internally, such as
WORKDIR,BASE_BRANCH,RESTORE,REVIEW_REF, and theBELLOWS_*andSUPERVISOR_*control names. The editor tells you when a name is refused. OPENCODE_CONFIG_CONTENTandCLAUDE_CODE_CONFIG_CONTENT.
Where the values are available
The values are set in the environment of the runner for each run. That includes yoursetup command and gates and the agent itself. They are not stored on the run’s record.