Configuration and credential files¶
This page describes the configuration and credential files used by the agent tools in this repository.
Configure Codex¶
See Getting started: Codex for initial setup.
~/.codex: Config, skills, persistent state directory. Mounted into containers running Codex.~/.codex/config.toml: Config file./codex/auth.json: Credentials
The Codex sandbox does not work well inside a container. Since we are using the
container as a security boundary, launch.py automatically includes the
--sandbox danger-full-access argument. We do not suggest adding that to
your config file in case you run Codex locally, hence only adding it at run
time when launching a container.
Here is an example ~/.codex/config.toml to use.
model = "gpt-5.4"
model_reasoning_effort = "medium"
analytics.enabled = false
# Ask for approval on each command.
# You can override on the command line with --ask-for-approval on-request
approval_policy = "untrusted"
# Shows detailed model reasoning.
# Change to "concise" if this is too much.
model_reasoning_summary = "detailed"
# Less sycophantic.
personality = "pragmatic"
# Updates are managed through the container
check_for_update_on_startup = false
# Lets you keep an eye on token usage
[tui]
status_line = ["model-with-reasoning", "current-dir", "used-tokens", "total-input-tokens", "total-output-tokens"]
See Codex config basics for more.
Configure Claude Code¶
Both of these paths are mounted into containers running Claude.
~/.claude/: Config, skills, persistent state directory.~/.claude.json– UI settings, metrics, and approved directories
Most of the configuration we’re using for Claude Code is in the environment variables, originally set up in Getting started: Claude Code, and the Setting up AWS STRIDES Single Sign-On setup.
~/.claude/settings.json needs to at least exist and have an empty JSON
array in it, and launch.py does this automatically by default. When you use the
/model command within Claude Code, it will enter that choice into this
file for persistence, after which this file will look something like:
{
"model": "opus"
}
You can prevent the model from accessing paths. For example, to exclude
the data and env directories from being read in the current
project, you might include this in a .claude/settings.json in the
current project:
{
"permissions": {"deny": ["Read(./data)", "Read(./env)"]}
}
In such cases, you should probably include the directories in a .gitignore
file so that tools like ripgrep (rg) won’t look in there either.
If you copy the tools/claude-status.sh file from this repo to your
~/.claude directory, you can add the following block to
~/.claude/settings.json to get a custom status line:
{
"statusLine": {
"type": "command",
"command": "~/.claude/claude-status.sh"
}
}
Which looks like this, where:
P: percentage of context window
I: input tokens
O: output tokens
R: cache read tokens
W: cache write tokens
See that claude-status.sh file for tips on how to modify.
See Claude Code Settings for more.
Configure AWS SSO¶
~/.aws: Config directory. Mounted into containers running Claude or Pi with Bedrock.~/.aws/config: contains profile information (SSO session & account ID)~/.aws/sso: credentials for SSO
Configure Pi¶
See Getting started: Pi for initial setup.
~/.pi: Config, skill, persistent state directory. Mounted into containers running Pi.
See Pi settings for more.