Skip to content

Add env var for configurable base or root directory #748

@mcking-07

Description

@mcking-07

Problem

Currently, all T3 Code data is hardcoded to ~/.t3 with no way to configure a different base location:

Path Override?
~/.t3/userdata/ (state) Yes T3CODE_STATE_DIR
~/.t3/dev/ (dev state) Yes --state-dir
~/.t3/worktrees/ No (hardcoded)

Users who want to store T3 Code data in a different location (e.g., ~/.config/t3, encrypted volumes, network drives, or XDG-compliant paths) currently have no single config to control this.

Proposal

Add a T3CODE_BASE_DIR environment variable that serves as the root for all T3 Code paths:

T3CODE_BASE_DIR (default: ~/.t3)
├── userdata/     ← state (T3CODE_STATE_DIR takes precedence)
├── dev/          ← dev state
└── worktrees/    ← git worktrees

Behavior

  • Default: ~/.t3 (no breaking change)
  • Override: T3CODE_BASE_DIR=~/.config/t3 moves everything
  • Backwards compat: T3CODE_STATE_DIR still takes precedence for state directory
  • CLI flag: --base-dir for dev-runner and server

Happy to implement if approved :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions