tsm/
├── main.go # Application entry point
├── config/ # Configuration management
├── logger_factory/ # Logging utilities
├── modes/ # Mode implementations
├── styles/ # UI styling
├── tmux/ # Tmux integration
├── utils/ # Utility functions
└── view/ # views
└── model/ # view models
TSM uses a strategy pattern for different operational modes:
type ModeStrategy interface {
Update(msg tea.Msg) (ModeStrategy, tea.Cmd)
View() string
ModeName() string
Reset()
GetCurrentSession() string
GetIcon() string
GetFooterText() string
}On first run, TSM will create a default configuration file at ~/.config/tsm/config.json.
| Option | Type | Description |
|---|---|---|
search_paths |
array | Directories to scan for projects |
max_depth |
number | How deep to scan subdirectories |
theme |
string | UI theme: "dark" or "light" |
{
"search_paths": [
"~/projects",
"~/code",
"~/work",
"~/dev"
],
"max_depth": 3,
"theme": "dark"
}TSM automatically excludes common non-project directories:
node_modulesvendorbuilddisttarget.git.cache__pycache__