Skip to content

Configuration

The configuration file is located at $XDG_CONFIG_HOME/seido/config.yaml (usually ~/.config/seido/config.yaml). For easier integration into NixOS, you can also specify a custom config using --config. This allows you to run seido --config ${generated_config} sync inside a systemd user job for example.

Warning

Seido requires XDG env variables, make sure they are set.

Structure

items:
  - name: <string>      # Unique identifier
    type: <git|http>    # Source type
    source: <url>       # Source URL
    target: <path>      # Local symlink target (supports env vars like $HOME)
    links: <map>        # Map of source subpath -> target symlink path (alternative to target)
    frozen: <bool>      # If true, skip updates (default: false)
    postSync: <cmd>     # Shell command to run after change
    git:                # Git-specific options
      ref: <string>     # Branch, tag, or commit SHA
      path: <string>    # Subpath within repo to symlink

Item Types

Git (type: git)

Clones a repository and symlinks it (or a subdirectory).

  • source: Repository URL.
  • git.ref: Optional. Branch, tag, or commit SHA. Defaults to default branch.
  • git.path: Optional. Subdirectory or file within the repo to symlink. Defaults to the entire repo.

HTTP (type: http)

Downloads a single file. Uses ETag and Last-Modified headers to avoid unnecessary downloads.

  • source: URL to the file.

Example

items:
  # Git repository (full)
  - name: dotfiles
    type: git
    source: https://github.com/user/dotfiles.git
    target: $HOME/dotfiles

  # Git repository (subdirectory)
  - name: nvim-config
    type: git
    source: https://github.com/user/nvim-config.git
    target: $HOME/.config/nvim
    git:
      ref: main
      path: config

  # Single file via HTTP
  - name: model-weights
    type: http
    source: https://huggingface.co/user/model/resolve/main/weights.bin
    target: $HOME/models/weights.bin
    frozen: true # Don't auto-update

  # Multiple files from one repo
  - name: multi-file-repo
    type: git
    source: https://github.com/user/repo.git
    links:
      "config/app.conf": $HOME/.config/app/app.conf
      "scripts/run.sh": $HOME/bin/run-app