You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
relix profiles set | get | ls | rm, and keeping a project trusted across the command's own edits #56
relix profiles lists profiles today (§3). It gains verbs to set placeholder values, so a credential never has to be typed into profiles.json by hand. This issue also carries the trust rule every command that writes under .relix/ uses (init, this, and source/connection).
relix profiles ls # rows: profile, variable, file (never the value)
relix profiles set staging WAREHOUSE_PASSWORD # hidden prompt; or the value on stdin
op read op://acme/wh/password | relix profiles set production WAREHOUSE_PASSWORD
relix profiles get staging WAREHOUSE_URL # the value, on stdout
relix profiles rm staging WAREHOUSE_PASSWORD
The value never comes from an argument: a hidden prompt on a terminal, stdin otherwise, so it stays out of shell history and ps.
Writes the nearest project's profiles.json, or ~/.relix/profiles.json with --user, creating it at 0600 and refusing one that is looser, as reading does (§5.4).
Warns when profiles.json is tracked by git (git ls-files --error-unmatch, when git is on the PATH).
get prints a value, because a pipeline may need one; ls never does.
Trust survives the command's own edits
Any change under a trusted .relix/ untrusts it (§5.4), so without care every profiles set or source add would be followed by a warning and a catalog trust. Before writing, the command checks whether the directory is trusted and its files still match the recorded hash. If both hold, it records the new hash after writing and the project stays trusted. If not, it stays untrusted after the write too, so a change someone else made is still reviewed before it loads. The command says which happened, on stderr.
Done when
Each verb works at project and --user scope, no value appears in argv, stdout of ls or any file but profiles.json, and the trust rule is tested in both directions: a trusted, unchanged project stays trusted; an untrusted or externally changed one stays untrusted.
Activity
Add relix profiles ls, set, get and rm, keeping a project trusted acr…
github-actions commentedon Oct 16, 2026
Done in #61, merged to develop (e6fcaa8).