Managing Configs

Creating Configurations

New Configuration

Create a new configuration from the default template:

laio config create myproject

This creates ~/.config/laio/myproject.yaml with:

  • Editor window with $EDITOR
  • Terminal window with two panes

Copy From Existing

Create a new configuration by copying an existing one:

laio config create newproject --copy existingproject

This copies existingproject.yaml to newproject.yaml, updating the session name.

Local Configuration

Create a .laio.yaml in the current directory:

laio config create

See Local Configs for more details.

Editing Configurations

Edit in $EDITOR

laio config edit myproject

Opens ~/.config/laio/myproject.yaml in your configured editor.

Direct Editing

$EDITOR ~/.config/laio/myproject.yaml

Validating Configurations

Validate before starting to catch errors:

laio config validate myproject

Validate a local configuration:

laio config validate --file .laio.yaml

Validation checks:

  • YAML syntax correctness
  • Required fields present
  • Field types match schema
  • Enum values are valid (e.g., flex_direction)

Listing Configurations

List All Configs

laio config list

Shows all configurations with active session markers (*).

JSON Output

laio config list --json

Useful for scripting and automation.

List Active Sessions Only

laio session list

Shows only currently running laio-managed sessions.

Deleting Configurations

With Confirmation

laio config delete myproject

Prompts for confirmation before deleting.

Force Delete

laio config delete myproject --force

Deletes without confirmation.

Note: This only deletes the configuration file. If the session is active, stop it first:

laio stop myproject
laio config delete myproject --force

Configuration Locations

Global Configurations

Stored in ~/.config/laio/:

~/.config/laio/
├── myproject.yaml
├── another-project.yaml
└── teamwork.yaml

Local Configurations

Stored in project directories as .laio.yaml:

~/projects/myapp/
├── .laio.yaml
├── src/
└── package.json

Linked Configurations

Local configs can be symlinked to global location:

cd ~/projects/myapp
laio config link myapp

Creates: ~/.config/laio/myapp.yaml~/projects/myapp/.laio.yaml

See Local Configs for linking details.

Common Workflows

Template Configuration

Create a template for new projects:

laio config create template
laio config edit template
# ... customize as needed

Use it for new projects:

laio config create newproject --copy template

Team Sharing

Share configurations via version control:

# In your project
laio config create
git add .laio.yaml
git commit -m "Add laio configuration"
git push

Team members can then:

git pull
laio start  # Automatically uses .laio.yaml

Validation in CI

Add validation to CI pipeline:

#!/bin/bash
if [ -f .laio.yaml ]; then
  laio config validate --file .laio.yaml
fi

Backup Configurations

# Backup all configs
cp -r ~/.config/laio ~/backups/laio-$(date +%Y%m%d)

# Backup single config
cp ~/.config/laio/myproject.yaml ~/backups/

Configuration Schema

The JSON schema is available at src/common/config/schema.json in the repository.

For editor integration (LSP, validation), point your YAML language server to the schema.

Example for VS Code (settings.json):

{
  "yaml.schemas": {
    "/path/to/laio-cli/src/common/config/schema.json": "*.laio.yaml"
  }
}