Terminal Profiles for sbsh¶
Profiles define how sbsh starts and manages terminals. They let you customize the command, environment, working directory, and lifecycle hooks for your terminals.
Quick Start¶
Where to put your profiles¶
sbsh looks for profiles in $HOME/.sbsh/profiles.yaml by default. You can also specify a different file using:
- Environment variable:
SBSH_PROFILES_FILE=/path/to/profiles.yaml - Command flag:
sbsh --profiles-file /path/to/profiles.yaml
Create your first profile¶
- Create the profiles directory (if it doesn't exist):
- Copy example profiles to get started:
# Copy the combined profiles file
# Copy example profiles from the repository
cp <repository-root>/docs/profiles/profiles.yaml ~/.sbsh/profiles.yaml
# Or combine individual example files (provided for reference)
cat <repository-root>/docs/profiles/*.yaml > ~/.sbsh/profiles.yaml
Note: sbsh only supports a single profiles.yaml file. The individual .yaml files in the repository's docs/profiles/ directory are provided as reference examples, but you must combine them into one file for use.
- Edit
~/.sbsh/profiles.yamland add your own profiles.
Minimal example¶
Here's the simplest profile you can create:
apiVersion: sbsh/v1beta1
kind: TerminalProfile
metadata:
name: my-terminal
spec:
runTarget: local
restartPolicy: exit
shell:
cmd: /bin/bash
To use it, run:
That's it! This will start a bash terminal with default settings.
Profile Structure¶
Each profile is a YAML document (multiple profiles are separated by ---). Here's the complete structure:
apiVersion: sbsh/v1beta1 # Always use this version
kind: TerminalProfile # Always use this kind
metadata:
name: profile-name # Your profile identifier
spec:
runTarget: local # Where to run (currently only "local")
restartPolicy: exit # What happens on exit
shell: # The command and environment
cwd: "~" # Working directory
cmd: /bin/bash # Command to run
cmdArgs: [] # Arguments for the command
inheritEnv: true # Inherit parent environment?
env: # Environment variables
KEY: value
prompt: "custom prompt" # Shell prompt (optional)
stages: # Lifecycle hooks (optional)
onInit: # Run before starting
- script: echo "Starting..."
postAttach: # Run after attaching
- script: echo "Attached!"
Field Reference¶
Required fields¶
metadata.name: A unique identifier for this profile. Use it withsbsh -p <name>to start a terminal.
spec fields¶
runTarget¶
Where the terminal runs. Currently only local is supported.
restartPolicy¶
Controls what happens when the terminal exits:
exit: Don't restart — terminal terminates (default for most use cases)restart-on-error: Only restart if the process exits with a non-zero coderestart-unlimited: Always restart the terminal when it exits
When to use each:
- Use
exitfor SSH terminals, container shells, or when you want the terminal to stay dead after it exits - Use
restart-on-errorfor persistent services or when you want automatic recovery from crashes - Use
restart-unlimitedfor services that should always be running
shell section¶
Defines the command and environment for your terminal.
cwd (optional)
- Working directory where the terminal starts
- Use
~for home directory (expands to$HOME) - Use
$HOME/pathfor paths relative to home - Use absolute paths like
/tmpfor specific directories
cmd (required)
- Full path to the command or shell to execute
- Examples:
/bin/bash,/usr/bin/zsh,/usr/bin/ssh,/usr/bin/docker
cmdArgs (optional)
- Array of arguments passed to
cmd - Example:
["--norc", "--noprofile"]for bash - Example:
["-t", "remote-host"]for ssh - Example:
["run", "--rm", "-ti", "ubuntu:latest"]for docker
inheritEnv (optional, default: true)
- When
true: terminal inherits all environment variables from the parent process - When
false: terminal starts with a minimal environment; only variables you specify inenvare available - Use
falsefor reproducible, isolated environments - Use
truewhen you want access to your full environment (PATH, SSH_AUTH_SOCK, etc.)
env (optional)
- Key-value map of environment variables
- Values can reference other variables:
PATH: "$HOME/bin:$PATH" - Numbers should be quoted as strings:
HISTSIZE: "5000"
prompt (optional)
- Custom shell prompt string
- Useful for identifying which profile you're using
- Supports shell escape sequences and sbsh variables:
$SBSH_TERM_ID: Current terminal ID$SBSH_TERM_PROFILE: Current profile name- Quoting in YAML: Complex prompts with escape sequences need careful quoting
- Single quotes:
prompt: '"\[\e[1;31m\]...\[\e[0m\]" ' - Double quotes with escapes:
prompt: "\"[sbsh-$SBSH_TERM_ID] \\u@\\h:\\w$ \""
stages section (optional)¶
Lifecycle hooks that run at specific points in the terminal lifecycle.
onInit
- List of commands that run before the main
cmdstarts - Runs in sequence; if one fails, subsequent commands may not run
- Common uses:
- Authenticating or configuring tools (
kubectl config use-context) - Initializing environments (
terraform init) - Setting up project state
- Each step is a script command:
postAttach
- List of commands that run after you attach to the terminal
- Useful for showing status or context when you reconnect
- Common uses:
- Showing current state (
kubectl get pods) - Displaying project status
- Running health checks
Example Profiles¶
This directory contains example profiles. The individual .yaml files are provided for reference, but sbsh only supports a single profiles.yaml file. All profiles must be combined into one file with --- separators between documents.
Profile Examples Index¶
| Profile | Description | File | Section |
|---|---|---|---|
default |
Minimal bash terminal with clean environment | default.yaml |
Section 1 |
zsh |
Minimal zsh terminal with clean environment | zsh.yaml |
Section 2 |
k8s-default |
Kubernetes development terminal with kubectl context setup | k8s-default.yaml |
Section 3 |
terraform-prd |
Terraform production workspace with environment variables | terraform-prd.yaml |
Section 4 |
k8s-pod |
Ephemeral Kubernetes pod shell for debugging | k8s-pod.yaml |
Section 5 |
docker-container |
Docker container shell for containerized workflows | docker-container.yaml |
Section 6 |
ssh-pk |
SSH remote host connection with persistent sessions | ssh-pk.yaml |
Section 7 |
python-venv |
Python virtual environment with automatic activation | python-venv.yaml |
Section 8 |
npm-dev |
Node.js/npm development environment with dependency management | npm-dev.yaml |
Section 9 |
go-dev |
Go/Golang development environment with module support | go-dev.yaml |
Section 10 |
ci-test |
CI/CD test environment for local testing that mirrors CI | ci-test.yaml |
Section 11 |
terraform-dev |
Terraform development workspace with environment variables | terraform-dev.yaml |
Section 12 |
terraform-staging |
Terraform staging workspace with environment variables | terraform-staging.yaml |
Section 13 |
postgres |
PostgreSQL database shell for database operations and debugging | postgres.yaml |
Section 14 |
aws-cli |
AWS CLI environment for infrastructure management | aws-cli.yaml |
Section 15 |
docker-compose |
Docker Compose development environment for multi-service setups | docker-compose.yaml |
Section 16 |
redis |
Redis CLI for database operations and debugging | redis.yaml |
Section 17 |
rust-dev |
Rust development environment with toolchain setup | rust-dev.yaml |
Section 18 |
mysql |
MySQL database shell for database operations and debugging | mysql.yaml |
Section 19 |
mongo |
MongoDB database shell for database operations and debugging | mongo.yaml |
Section 20 |
All profiles are also available in profiles.yaml as a combined file ready to use.
To use these profiles:
# Copy the combined file
cp docs/profiles/profiles.yaml ~/.sbsh/profiles.yaml
# Or copy specific example files and combine them
cat docs/profiles/default.yaml docs/profiles/python-venv.yaml > ~/.sbsh/profiles.yaml
Example Profiles Explained¶
1. default - Minimal bash terminal¶
See default.yaml for the complete profile.
A clean bash terminal with minimal environment variables:
apiVersion: sbsh/v1beta1
kind: TerminalProfile
metadata:
name: default
spec:
runTarget: local
restartPolicy: restart-on-error
shell:
cwd: "~"
cmd: /bin/bash
cmdArgs: ["--norc", "--noprofile"] # Start with a clean bash
inheritEnv: false # Don't inherit parent env
env:
LANG: en_US.UTF-8
EDITOR: vim
HISTSIZE: "5000"
prompt: "\"[sbsh-$SBSH_TERM_ID] \\u@\\h:\\w$ \""
Key points:
inheritEnv: falsecreates a minimal, reproducible environment--norc --noprofileprevents bash from loading your.bashrc- Custom prompt shows the terminal ID so you know which sbsh terminal you're in
2. zsh - Minimal zsh terminal¶
See zsh.yaml for the complete profile.
A clean zsh terminal with minimal environment variables, similar to the default bash profile but using zsh:
apiVersion: sbsh/v1beta1
kind: TerminalProfile
metadata:
name: zsh
spec:
runTarget: local
restartPolicy: restart-on-error
shell:
cwd: "~"
cmd: /bin/zsh
cmdArgs: ["-f"] # Start with a clean zsh (skip startup files)
inheritEnv: false # Don't inherit parent env
env:
LANG: en_US.UTF-8
EDITOR: vim
HISTSIZE: "5000"
prompt: '"[sbsh-$SBSH_TERM_ID] %n@%m:%~$ "'
Key points:
inheritEnv: falsecreates a minimal, reproducible environment-fflag prevents zsh from loading startup files (.zshrc,.zshenv, etc.)- Custom prompt uses zsh format (
%n@%m:%~$) instead of bash format (\u@\h:\w$) %nis username,%mis hostname,%~is current directory in zsh prompt format
3. k8s-default - Kubernetes development terminal¶
See k8s-default.yaml for the complete profile.
Sets up kubectl context and shows cluster info on attach.
Key points:
onInitsets up the kubectl context before the shell startspostAttachshows cluster status when you reconnect- Colored prompt distinguishes this profile from others
4. terraform-prd - Terraform production workspace¶
See terraform-prd.yaml for the complete profile.
Prepares a Terraform workspace and runs planning.
Key points:
restartPolicy: exitprevents accidental restarts in productiononInitprepares the Terraform workspace before you start working- Environment variable
TF_VAR_environmentis available to Terraform
5. k8s-pod - Ephemeral Kubernetes pod shell¶
See k8s-pod.yaml for the complete profile.
Creates a temporary Kubernetes pod and drops you into a shell.
Key points:
- Uses
kubectl runto create an ephemeral pod --rmremoves the pod when it exits-tiallocates a pseudo-TTY and keeps STDIN open
6. docker-container - Ephemeral container shell¶
See docker-container.yaml for the complete profile.
Starts a temporary Docker container and drops you into a shell.
Key points:
cmdisdocker, not a shellcmdArgscontains all the docker arguments--rmremoves the container when it exits-tiallocates a pseudo-TTY and keeps STDIN open
7. ssh-pk - SSH to remote host¶
See ssh-pk.yaml for the complete profile.
Connects to a remote host using SSH.
Key points:
cmdissshcmdArgscontains SSH options and the host alias/name-tforces pseudo-TTY allocation (needed for interactive shells)
8. python-venv - Python virtual environment¶
See python-venv.yaml for the complete profile.
Sets up a Python development environment with virtual environment activation. Teams can share this profile to ensure everyone uses the same Python environment for local development.
Key points:
onInitcreates a virtual environment if it doesn't exist, then activates it- Sets
PYTHONPATHto include the project directory postAttachreactivates the venv and shows Python/pip versions when reconnecting- Uses yellow-colored prompt to distinguish Python environments
inheritEnv: trueallows PATH and other tools to work correctly- Teams can customize the
cwdpath to match their project location
Customization:
- Update
cwdto point to your project directory - Adjust
venvdirectory name if your team uses a different convention (e.g.,.venv,env) - Add additional environment variables or setup steps as needed
9. npm-dev - Node.js/npm development environment¶
See npm-dev.yaml for the complete profile.
Sets up a Node.js development environment with dependency installation. Teams can share this profile to ensure consistent Node.js environment setup across team members.
Key points:
onInitchecks Node/npm versions and installs dependencies ifnode_modulesdoesn't exist- Sets
NODE_ENV=developmentfor proper development mode postAttachshows Node/npm versions and project name when reconnecting- Uses cyan-colored prompt to distinguish Node.js environments
inheritEnv: trueallows PATH and npm/node binaries to work correctly- Teams can customize the
cwdpath to match their project location
Customization:
- Update
cwdto point to your project directory - Modify
npm installcommand if you use different package managers (yarn, pnpm) or need additional flags - Add environment variables for API keys, database URLs, or other configuration
- Adjust lifecycle hooks to run tests, linting, or other setup steps
10. go-dev - Go/Golang development¶
See go-dev.yaml for the complete profile.
Sets up a Go development environment with module support. Teams can share this profile to ensure consistent Go environment setup across team members.
Key points:
onInitchecks Go version, shows GOROOT and GOPATH, and verifies Go modules if present- Sets
GO111MODULE=onto enable Go modules - Sets
CGO_ENABLED=1for CGO support (useful for many Go packages) postAttachshows Go version and module information when reconnecting- Uses blue-colored prompt to distinguish Go environments
inheritEnv: trueallows PATH and Go tools to work correctly- Teams can customize the
cwdpath to match their project location
Customization:
- Update
cwdto point to your project directory - Adjust
GO111MODULEorCGO_ENABLEDbased on your project needs - Add additional environment variables for Go-specific configuration
- Modify lifecycle hooks to run tests, builds, or other setup steps
11. ci-test - CI/CD test environment¶
See ci-test.yaml for the complete profile.
Sets up a local test environment that mirrors CI/CD pipelines. Use this profile to test locally with the same environment variables as your CI system.
Key points:
- Sets
CI=trueto indicate CI environment - Sets
NODE_ENV=testandPYTHON_ENV=testfor test configurations restartPolicy: exitensures clean test runsonInitconfirms CI environment variables are setpostAttachdisplays current environment status- Uses purple-colored prompt to distinguish CI test environments
inheritEnv: trueallows access to system tools and PATH
Customization:
- Add additional CI-specific environment variables
- Customize test environment variables based on your CI/CD setup
- Add lifecycle hooks to run tests or setup test databases
- Adjust
cwdto point to your project directory
12. terraform-dev - Terraform development workspace¶
See terraform-dev.yaml for the complete profile.
Prepares a Terraform development workspace with environment-specific configuration. Similar to terraform-prd but for development environments.
Key points:
restartPolicy: exitprevents accidental restarts in developmentonInitprepares the Terraform workspace for development before you start working- Environment variable
TF_VAR_environment: "dev"is available to Terraform - Uses blue-colored prompt (vs red for production) to distinguish environments
- Automatically runs
terraform workspace use devandterraform init
Customization:
- Update
cwdto point to your Terraform project directory - Add additional Terraform variables via
envsection - Modify lifecycle hooks to run specific Terraform commands
- Adjust workspace name if your team uses different naming conventions
13. terraform-staging - Terraform staging workspace¶
See terraform-staging.yaml for the complete profile.
Prepares a Terraform staging workspace with environment-specific configuration. Similar to terraform-prd and terraform-dev but for staging environments.
Key points:
restartPolicy: exitprevents accidental restarts in stagingonInitprepares the Terraform workspace for staging before you start working- Environment variable
TF_VAR_environment: "staging"is available to Terraform - Uses yellow-colored prompt (vs red for production, blue for dev) to distinguish environments
- Automatically runs
terraform workspace use stagingandterraform init
Customization:
- Update
cwdto point to your Terraform project directory - Add additional Terraform variables via
envsection - Modify lifecycle hooks to run specific Terraform commands
- Adjust workspace name if your team uses different naming conventions
14. postgres - PostgreSQL database shell¶
See postgres.yaml for the complete profile.
Connects to a PostgreSQL database using the psql CLI. Perfect for database operations, debugging, and administration with persistent terminal sessions.
Key points:
cmdispsql, not a shellcmdArgscontains connection parameters: host, user, and database- Uses environment variables for connection:
PGHOST,PGUSER,PGDATABASE,PGPORT restartPolicy: exitensures clean disconnection- Password can be set via
PGPASSWORDenvironment variable or entered interactively
Customization:
- Update environment variables to match your PostgreSQL connection details
- Add additional
psqlcommand-line arguments if needed - Use connection string format:
psql "postgresql://user:password@host:port/database" - Set
PGPASSWORDin environment for non-interactive password entry
15. aws-cli - AWS CLI environment¶
See aws-cli.yaml for the complete profile.
Sets up an AWS CLI environment for infrastructure management. Perfect for managing AWS resources with consistent profile and region configuration.
Key points:
onInitverifies AWS CLI installation and authenticates with AWS- Sets AWS profile and region via environment variables:
AWS_PROFILE,AWS_REGION,AWS_DEFAULT_REGION postAttachshows current AWS identity and configuration when reconnecting- Uses yellow-colored prompt showing AWS profile and region
- Verifies AWS credentials with
aws sts get-caller-identity inheritEnv: trueallows AWS CLI and other tools to work correctly
Customization:
- Update
AWS_PROFILEto use a specific AWS profile - Change
AWS_REGIONto your preferred default region - Add additional AWS-specific environment variables
- Modify lifecycle hooks to verify specific AWS resources or run AWS commands
16. docker-compose - Docker Compose development¶
See docker-compose.yaml for the complete profile.
Sets up a Docker Compose development environment for managing multi-service applications. Automatically starts services and shows status on attach.
Key points:
onInitchecks docker-compose version and starts services ifdocker-compose.ymlexistspostAttachshows service status and recent logs when reconnecting- Sets
COMPOSE_PROJECT_NAMEto organize Docker Compose projects - Uses cyan-colored prompt to distinguish Docker Compose environments
inheritEnv: trueallows Docker and docker-compose commands to work correctly- Automatically runs
docker-compose up -dto start services in detached mode
Customization:
- Update
cwdto point to your project directory withdocker-compose.yml - Modify
COMPOSE_PROJECT_NAMEto match your project naming - Add lifecycle hooks to run specific docker-compose commands
- Adjust service startup behavior (e.g.,
docker-compose upvsdocker-compose up -d)
17. redis - Redis CLI¶
See redis.yaml for the complete profile.
Connects to a Redis instance using the redis-cli command. Perfect for debugging cache issues and performing Redis operations with persistent sessions.
Key points:
cmdisredis-cli, not a shellcmdArgscontains connection parameters: host and port- Uses environment variables for connection:
REDIS_HOST,REDIS_PORT,REDIS_PASSWORD restartPolicy: exitensures clean disconnection- Password can be set via
REDIS_PASSWORDenvironment variable or passed via-aflag
Customization:
- Update environment variables to match your Redis connection details
- Add password authentication:
-a "$REDIS_PASSWORD"incmdArgs - Use connection string format:
redis-cli -u redis://password@host:port - Add additional Redis CLI options as needed
18. rust-dev - Rust development environment¶
See rust-dev.yaml for the complete profile.
Sets up a Rust development environment with toolchain verification. Teams can share this profile to ensure consistent Rust environment setup across team members.
Key points:
onInitchecks Rust and Cargo versions, verifies Rust project ifCargo.tomlexists- Sets
RUST_BACKTRACE=1for better error debugging postAttachshows Rust/Cargo versions and project information when reconnecting- Uses red-colored prompt to distinguish Rust environments
inheritEnv: trueallows PATH and Rust tools to work correctly- Teams can customize the
cwdpath to match their project location
Customization:
- Update
cwdto point to your project directory - Adjust
RUST_BACKTRACEsetting based on your debugging needs - Add additional Rust-specific environment variables
- Modify lifecycle hooks to run tests, builds, or other setup steps
19. mysql - MySQL database shell¶
See mysql.yaml for the complete profile.
Connects to a MySQL database using the mysql CLI. Perfect for database operations, debugging, and administration with persistent terminal sessions.
Key points:
cmdismysql, not a shellcmdArgscontains connection parameters: host, user, database, and password prompt- Uses environment variables for connection:
MYSQL_HOST,MYSQL_USER,MYSQL_DATABASE,MYSQL_PASSWORD restartPolicy: exitensures clean disconnection- Password can be set via
MYSQL_PWDenvironment variable or entered interactively with-pflag
Customization:
- Update environment variables to match your MySQL connection details
- Use
MYSQL_PWDenvironment variable for non-interactive password entry (less secure) - Add additional MySQL command-line arguments if needed
- Use connection string format:
mysql -h host -u user -p password database
20. mongo - MongoDB database shell¶
See mongo.yaml for the complete profile.
Connects to a MongoDB database using the mongosh CLI (MongoDB Shell). Perfect for database operations, debugging, and administration with persistent terminal sessions.
Key points:
cmdismongosh, not a shellcmdArgscontains connection URI:mongodb://localhost:27017by default- Uses environment variables for connection:
MONGO_URI,MONGO_HOST,MONGO_PORT,MONGO_DATABASE,MONGO_USER,MONGO_PASSWORD restartPolicy: exitensures clean disconnection- Supports connection string format:
mongodb://user:password@host:port/database
Customization:
- Update
MONGO_URIto match your MongoDB connection string - Use individual environment variables (
MONGO_HOST,MONGO_PORT, etc.) to build connection string - Add authentication:
mongodb://username:password@host:port/database - Add additional mongosh command-line arguments if needed
- Use connection string with authentication: Update
MONGO_URIto include credentials
Creating Your Own Profile¶
Step-by-step guide¶
- Start with a copy: Copy an existing profile that's close to what you need
- Change the name: Update
metadata.nameto something meaningful - Customize the command: Set
cmdandcmdArgsfor what you want to run - Set the working directory: Use
cwdto start in the right place - Configure environment: Add
envvariables or setinheritEnv - Add lifecycle hooks: Use
onInitandpostAttachif needed - Test it: Run
sbsh -p <your-profile-name>and verify everything works
Best practices¶
- Use descriptive names:
my-project-devis better thantest1 - Prefer
cmdArgsarrays: Keepcmdclean and usecmdArgsfor arguments - Use
inheritEnv: falsefor isolation: Better for reproducible environments - Use
inheritEnv: truefor convenience: When you need full PATH and other tools - Quote numbers in env:
HISTSIZE: "5000"notHISTSIZE: 5000 - Use
~for home directory: It's expanded at terminal start - Use
restartPolicy: exitfor containers/SSH: These should exit cleanly - Use
restartPolicy: restart-on-errorfor services: When you want resilience
Common Issues and Solutions¶
Profile not found¶
Problem: sbsh says "profile not found"
Solutions:
- Check the profile name matches exactly (case-sensitive)
- Verify
~/.sbsh/profiles.yamlexists - Run
sb get profilesto see available profiles - Check if you're using a custom profiles file path
Environment variables not working¶
Problem: Environment variables aren't available in the terminal
Solutions:
- If
inheritEnv: false, make sure variables are in theenvmap - Use
$HOMEinstead of~in env values - Quote variable values that contain spaces or special characters
- Numbers must be strings:
"5000"not5000
Prompt not showing colors¶
Problem: Shell prompt lacks colors or escape sequences
Solutions:
- Quote prompts carefully in YAML
- Use double quotes around the prompt string:
prompt: '"\[\e[1;31m\]...\"" - Test with simpler prompts first, then add complexity
- Remember to escape backslashes:
\\unot\u
Stages not running¶
Problem: Commands in onInit or postAttach don't execute
Solutions:
- Verify YAML syntax is correct (indentation matters!)
- Check that
script:is indented under each stage item - Ensure commands are available in the environment
- Use absolute paths for commands if PATH isn't set
Tilde (~) not expanding¶
Problem: ~ appears literally instead of expanding to home directory
Solutions:
- Tilde expands in
cwdbut not inenvvalues - Use
$HOMEin environment variables:PATH: "$HOME/bin:$PATH" - Use absolute paths if expansion is unreliable
Testing Your Profiles¶
- Validate syntax: Use a YAML validator or check with
yamltools - List profiles: Run
sb get profilesto see if your profile appears - Test the profile: Run
sbsh -p <profile-name>to start a terminal - Check environment: Run
envto verify variables are set correctly - Test stages: Detach and reattach to verify
postAttachruns - Test restart policy: Exit the terminal and see if it restarts as expected
Viewing Available Profiles¶
List all profiles in your profiles file:
This shows:
- Profile name
- Run target
- Number of environment variables
- Command that will be executed
Custom Profile File Location¶
By default, sbsh uses ~/.sbsh/profiles.yaml. To use a different location:
Using environment variable:
Using command flag:
Profile File Organization¶
sbsh loads all profiles from a single profiles.yaml file. Multiple profiles are defined in the same file, separated by --- (YAML document separator).
Example profiles are provided as individual files in this directory for reference and documentation purposes. To use them, you must combine them into a single profiles.yaml file:
# Copy the pre-combined file (recommended)
# Copy from repository
cp <repository-root>/docs/profiles/profiles.yaml ~/.sbsh/profiles.yaml
# Or combine specific example files
cat <repository-root>/docs/profiles/default.yaml <repository-root>/docs/profiles/python-venv.yaml > ~/.sbsh/profiles.yaml
Important: sbsh only reads from a single profiles.yaml file. The individual .yaml files in the repository's docs/profiles/ directory are examples for reference only.
Contributing Examples¶
Found a useful profile pattern? We'd love to see it! Consider opening a pull request with:
- Your profile as a new file in the repository's
docs/profiles/directory (e.g.,my-profile.yaml) - provided as a reference example - Add the profile to
docs/profiles/profiles.yaml(the combined file) with---separator - Update this README to document the new profile
- A brief description of the use case
- Any special requirements or setup instructions
Happy profiling! 🚀