rigsmith 0.2.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. {rigsmith-0.2.0 → rigsmith-0.3.0}/PKG-INFO +3 -2
  2. {rigsmith-0.2.0 → rigsmith-0.3.0}/README.md +2 -1
  3. rigsmith-0.3.0/config/presets/ssh.yaml +74 -0
  4. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/reference.yaml +7 -0
  5. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/CATALOG.md +6 -1
  6. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/guide.md +2 -2
  7. {rigsmith-0.2.0 → rigsmith-0.3.0}/pyproject.toml +1 -1
  8. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/cli.py +13 -1
  9. rigsmith-0.3.0/src/rigsmith/library/files/tmux.conf +11 -0
  10. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/ml.py +6 -0
  11. rigsmith-0.3.0/src/rigsmith/library/snippets/tmux-config.zsh +2 -0
  12. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/test_tui.py +3 -1
  13. {rigsmith-0.2.0 → rigsmith-0.3.0}/uv.lock +1 -1
  14. {rigsmith-0.2.0 → rigsmith-0.3.0}/.claude/skills/add-artifact/SKILL.md +0 -0
  15. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/CODEOWNERS +0 -0
  16. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  17. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/ISSUE_TEMPLATE/new-artifact.yml +0 -0
  18. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/dependabot.yml +0 -0
  19. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/pull_request_template.md +0 -0
  20. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/workflows/ci.yml +0 -0
  21. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/workflows/e2e.yml +0 -0
  22. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/workflows/release.yml +0 -0
  23. {rigsmith-0.2.0 → rigsmith-0.3.0}/.github/workflows/sources.yml +0 -0
  24. {rigsmith-0.2.0 → rigsmith-0.3.0}/.gitignore +0 -0
  25. {rigsmith-0.2.0 → rigsmith-0.3.0}/.pre-commit-config.yaml +0 -0
  26. {rigsmith-0.2.0 → rigsmith-0.3.0}/.python-version +0 -0
  27. {rigsmith-0.2.0 → rigsmith-0.3.0}/CLAUDE.md +0 -0
  28. {rigsmith-0.2.0 → rigsmith-0.3.0}/CONTRIBUTING.md +0 -0
  29. {rigsmith-0.2.0 → rigsmith-0.3.0}/DESIGN.md +0 -0
  30. {rigsmith-0.2.0 → rigsmith-0.3.0}/LICENSE +0 -0
  31. {rigsmith-0.2.0 → rigsmith-0.3.0}/SECURITY.md +0 -0
  32. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/example.yaml +0 -0
  33. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/backend-go.yaml +0 -0
  34. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/data-engineer.yaml +0 -0
  35. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/java.yaml +0 -0
  36. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/ml-engineer.yaml +0 -0
  37. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/platform.yaml +0 -0
  38. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/python.yaml +0 -0
  39. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/rust.yaml +0 -0
  40. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/server.yaml +0 -0
  41. {rigsmith-0.2.0 → rigsmith-0.3.0}/config/presets/web.yaml +0 -0
  42. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/reference.md +0 -0
  43. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/screenshots/confirm.svg +0 -0
  44. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/screenshots/help.svg +0 -0
  45. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/screenshots/picker.svg +0 -0
  46. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/screenshots/questionnaire.svg +0 -0
  47. {rigsmith-0.2.0 → rigsmith-0.3.0}/docs/screenshots/start-from.svg +0 -0
  48. {rigsmith-0.2.0 → rigsmith-0.3.0}/install.sh +0 -0
  49. {rigsmith-0.2.0 → rigsmith-0.3.0}/scripts/check_sources.py +0 -0
  50. {rigsmith-0.2.0 → rigsmith-0.3.0}/scripts/gen_catalog.py +0 -0
  51. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/__init__.py +0 -0
  52. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/__main__.py +0 -0
  53. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/backends.py +0 -0
  54. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/cli.py +0 -0
  55. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/config.py +0 -0
  56. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/effects.py +0 -0
  57. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/__init__.py +0 -0
  58. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/_util.py +0 -0
  59. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/ai.py +0 -0
  60. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/backend.py +0 -0
  61. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/cloud.py +0 -0
  62. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/containers.py +0 -0
  63. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/core.py +0 -0
  64. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/data.py +0 -0
  65. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/desktop.py +0 -0
  66. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/dev.py +0 -0
  67. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/docs.py +0 -0
  68. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/editor.py +0 -0
  69. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/files/Catppuccin-Mocha.itermcolors +0 -0
  70. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/fun.py +0 -0
  71. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/git.py +0 -0
  72. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/go.py +0 -0
  73. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/iac.py +0 -0
  74. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/java.py +0 -0
  75. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/kubernetes.py +0 -0
  76. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/python.py +0 -0
  77. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/questions.py +0 -0
  78. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/rust.py +0 -0
  79. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/shell.py +0 -0
  80. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/atuin.zsh +0 -0
  81. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/bat-aliases.zsh +0 -0
  82. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/direnv.zsh +0 -0
  83. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/docker-aliases.zsh +0 -0
  84. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/eza-aliases.zsh +0 -0
  85. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/fd-aliases.zsh +0 -0
  86. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/fun-aliases.zsh +0 -0
  87. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/fzf-functions.zsh +0 -0
  88. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/fzf.zsh +0 -0
  89. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/gcloud.zsh +0 -0
  90. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/gcp-aliases.zsh +0 -0
  91. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/git-aliases.zsh +0 -0
  92. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/go.zsh +0 -0
  93. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/helix.zsh +0 -0
  94. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/helm-aliases.zsh +0 -0
  95. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/helm.zsh +0 -0
  96. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/homebrew.zsh +0 -0
  97. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/k8s-aliases.zsh +0 -0
  98. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/krew.zsh +0 -0
  99. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/kubectl.zsh +0 -0
  100. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/lazygit.zsh +0 -0
  101. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/micro.zsh +0 -0
  102. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/mise.zsh +0 -0
  103. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/neovim.zsh +0 -0
  104. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/omz-plugins.zsh +0 -0
  105. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/openjdk.zsh +0 -0
  106. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/p10k-instant.zsh +0 -0
  107. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/p10k.zsh +0 -0
  108. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/python-aliases.zsh +0 -0
  109. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/ripgrep-aliases.zsh +0 -0
  110. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/rustup.zsh +0 -0
  111. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/shell-aliases.zsh +0 -0
  112. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/shell-extras.zsh +0 -0
  113. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/shell-functions.zsh +0 -0
  114. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/starship.zsh +0 -0
  115. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/sys-aliases.zsh +0 -0
  116. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/terraform-aliases.zsh +0 -0
  117. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/thefuck.zsh +0 -0
  118. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/yazi.zsh +0 -0
  119. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zinit.zsh +0 -0
  120. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zoxide.zsh +0 -0
  121. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zsh-autosuggestions.zsh +0 -0
  122. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zsh-completion.zsh +0 -0
  123. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zsh-completions.zsh +0 -0
  124. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zsh-history-substring-search.zsh +0 -0
  125. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zsh-options.zsh +0 -0
  126. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/snippets/zsh-syntax-highlighting.zsh +0 -0
  127. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/terminal.py +0 -0
  128. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/library/web.py +0 -0
  129. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/model.py +0 -0
  130. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/plan.py +0 -0
  131. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/runner.py +0 -0
  132. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/script.py +0 -0
  133. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/settings.py +0 -0
  134. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/shell.py +0 -0
  135. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/state.py +0 -0
  136. {rigsmith-0.2.0 → rigsmith-0.3.0}/src/rigsmith/tui.py +0 -0
  137. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/conftest.py +0 -0
  138. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/e2e/check.py +0 -0
  139. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/e2e/run.sh +0 -0
  140. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/test_cli.py +0 -0
  141. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/test_engine.py +0 -0
  142. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/test_library.py +0 -0
  143. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/test_runner.py +0 -0
  144. {rigsmith-0.2.0 → rigsmith-0.3.0}/tests/test_script.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: rigsmith
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Set up a fresh macOS or Linux machine from a curated, extensible library of tools and configs
5
5
  Author: Slim Frikha
6
6
  License-Expression: MIT
@@ -108,7 +108,8 @@ Every flag is in the [reference](docs/reference.md#commands).
108
108
  | [`data-engineer`](config/presets/data-engineer.yaml) | Python + SQL in the terminal (DuckDB, Postgres, Kafka), notebooks, cloud CLIs |
109
109
  | [`ml-engineer`](config/presets/ml-engineer.yaml) | Python with uv, notebooks, Hugging Face, local LLMs |
110
110
  | [`platform`](config/presets/platform.yaml) | Containers, Kubernetes end to end, Terraform and friends, GCP and AWS |
111
- | [`server`](config/presets/server.yaml) | A headless box over SSH: shell and modern CLI, no fonts or GUI apps |
111
+ | [`ssh`](config/presets/ssh.yaml) | A remote dev box you SSH into (cloud VM, GPU machine): tmux, modern CLI, git, uv, GPU monitor |
112
+ | [`server`](config/presets/server.yaml) | A lean ops box: shell and modern CLI only |
112
113
 
113
114
  The developer presets share a base (zsh, starship, fzf, ripgrep, eza, zoxide, git, lazygit, VS Code); `server` keeps
114
115
  only the shell and CLI part. Every preset pins its answers, so `-y` gives the same result every time. [`reference`](config/reference.yaml) has every tool;
@@ -89,7 +89,8 @@ Every flag is in the [reference](docs/reference.md#commands).
89
89
  | [`data-engineer`](config/presets/data-engineer.yaml) | Python + SQL in the terminal (DuckDB, Postgres, Kafka), notebooks, cloud CLIs |
90
90
  | [`ml-engineer`](config/presets/ml-engineer.yaml) | Python with uv, notebooks, Hugging Face, local LLMs |
91
91
  | [`platform`](config/presets/platform.yaml) | Containers, Kubernetes end to end, Terraform and friends, GCP and AWS |
92
- | [`server`](config/presets/server.yaml) | A headless box over SSH: shell and modern CLI, no fonts or GUI apps |
92
+ | [`ssh`](config/presets/ssh.yaml) | A remote dev box you SSH into (cloud VM, GPU machine): tmux, modern CLI, git, uv, GPU monitor |
93
+ | [`server`](config/presets/server.yaml) | A lean ops box: shell and modern CLI only |
93
94
 
94
95
  The developer presets share a base (zsh, starship, fzf, ripgrep, eza, zoxide, git, lazygit, VS Code); `server` keeps
95
96
  only the shell and CLI part. Every preset pins its answers, so `-y` gives the same result every time. [`reference`](config/reference.yaml) has every tool;
@@ -0,0 +1,74 @@
1
+ # Remote dev box over SSH (cloud VM, GPU machine): a comfortable zsh, tmux sessions that survive disconnects, the
2
+ # modern CLI, git, Python with uv and GPU monitoring. No GUI apps, fonts or VS Code: icons render with your local
3
+ # terminal's font, and VS Code's Remote-SSH brings its own server. For a lean ops box, see the `server` preset.
4
+ # Use it: rigsmith install -c ssh -y (Linux needs sudo once, for Homebrew and to make zsh the login shell)
5
+ #
6
+ # minimal a livable login: zsh, starship, tmux, core CLI, git, uv
7
+ # standard a dev box: + history search, disk tools, GPU monitor, Python extras, lazygit, gh
8
+ # comprehensive everything: + kubectl/k9s, mosh, more TUIs, delta, huggingface-cli
9
+ profiles: [minimal, standard, comprehensive]
10
+
11
+ sections:
12
+ system:
13
+ bootstrap: {homebrew: minimal, apt-base: minimal}
14
+
15
+ shell:
16
+ core: {zsh: minimal, zinit: minimal}
17
+ prompt: {starship: minimal}
18
+ plugins:
19
+ zsh-autosuggestions: minimal
20
+ zsh-syntax-highlighting: minimal
21
+ zsh-completions: standard
22
+ zsh-history-substring-search: standard
23
+ history: {atuin: standard}
24
+ helpers: {shell-aliases: minimal, shell-functions: standard}
25
+
26
+ cli:
27
+ sessions: {tmux: minimal, tmux-config: minimal}
28
+ files: {eza: minimal, eza-aliases: minimal, tree: standard, yazi: comprehensive}
29
+ search:
30
+ ripgrep: minimal
31
+ ripgrep-aliases: minimal
32
+ fd: minimal
33
+ fzf: minimal
34
+ fd-aliases: standard
35
+ fzf-functions: standard
36
+ view-edit: {bat: minimal, bat-aliases: minimal, micro: minimal}
37
+ navigation: {zoxide: minimal}
38
+ data: {jq: minimal, yq: standard}
39
+ system:
40
+ htop: minimal
41
+ dust: standard
42
+ duf: standard
43
+ ncdu: standard
44
+ sys-aliases: standard
45
+ btop: comprehensive
46
+ network: {wget: standard, mosh: comprehensive}
47
+ docs: {tldr: comprehensive}
48
+
49
+ git:
50
+ core: {git: minimal, git-aliases: minimal, gh: standard, git-defaults: standard}
51
+ ui: {lazygit: standard}
52
+ diff: {delta: comprehensive}
53
+
54
+ python:
55
+ tooling: {uv: minimal, python-aliases: standard, ipython: standard, ruff: comprehensive}
56
+
57
+ ml:
58
+ gpu: {nvitop: standard}
59
+ models: {huggingface-cli: comprehensive}
60
+
61
+ containers:
62
+ tools: {docker-aliases: standard}
63
+
64
+ kubernetes:
65
+ core: {kubectl: comprehensive, k8s-aliases: comprehensive}
66
+ ui: {k9s: comprehensive}
67
+
68
+ answers:
69
+ profile: standard
70
+ system-monitor: htop
71
+ icons: "yes"
72
+ aliases: "yes"
73
+ tui: "yes"
74
+ theme: catppuccin
@@ -40,6 +40,9 @@ sections:
40
40
  catppuccin-iterm: standard
41
41
 
42
42
  cli:
43
+ sessions:
44
+ tmux: standard
45
+ tmux-config: standard
43
46
  files:
44
47
  eza: minimal
45
48
  eza-aliases: minimal
@@ -70,12 +73,14 @@ sections:
70
73
  bottom: comprehensive
71
74
  btop: comprehensive
72
75
  dust: standard
76
+ ncdu: comprehensive
73
77
  duf: standard
74
78
  procs: comprehensive
75
79
  sys-aliases: standard
76
80
  network:
77
81
  httpie: standard
78
82
  wget: standard
83
+ mosh: comprehensive
79
84
  docs:
80
85
  tldr: standard
81
86
  misc:
@@ -318,6 +323,8 @@ sections:
318
323
  database-client: comprehensive
319
324
 
320
325
  ml:
326
+ gpu:
327
+ nvitop: standard
321
328
  notebooks:
322
329
  jupyterlab: standard
323
330
  marimo: comprehensive
@@ -2,7 +2,7 @@
2
2
 
3
3
  <!-- generated by scripts/gen_catalog.py: edit the library, not this file -->
4
4
 
5
- **234 artifacts** in 23 sections. Profiles are cumulative: `minimal` ⊂ `standard` ⊂ `comprehensive`. ◉ marks a role: only one provider is active at a time.
5
+ **239 artifacts** in 23 sections. Profiles are cumulative: `minimal` ⊂ `standard` ⊂ `comprehensive`. ◉ marks a role: only one provider is active at a time.
6
6
 
7
7
  [system](#system) · [shell](#shell) · [terminal](#terminal) · [cli](#cli) · [git](#git) · [dev](#dev) · [python](#python) · [go](#go) · [rust](#rust) · [java](#java) · [containers](#containers) · [kubernetes](#kubernetes) · [cloud](#cloud) · [iac](#iac) · [editor](#editor) · [ai](#ai) · [desktop](#desktop) · [web](#web) · [backend](#backend) · [data](#data) · [ml](#ml) · [docs](#docs) · [fun](#fun)
8
8
 
@@ -46,6 +46,8 @@
46
46
 
47
47
  | | artifact | profile | what it is | installed with |
48
48
  |---|---|---|---|---|
49
+ | **sessions** | `tmux` | standard | Terminal multiplexer: sessions survive SSH disconnects. Detach with prefix + d, come back with `ta`. | brew `tmux` |
50
+ | | `tmux-config` | standard | Sane tmux defaults (mouse, 50k scrollback, true color, windows from 1); `ta` attaches or creates a session. | zsh snippet · file |
49
51
  | **files** | `eza` | minimal | Modern ls with colors, git status and optional icons. `eza -la --git`, `eza --tree`. | brew `eza` |
50
52
  | | `eza-aliases` | minimal | ls/ll/la/lt/lsize/ltime → eza (icons when enabled). | zsh snippet |
51
53
  | | `tree` | standard | Print directory trees. | brew `tree` |
@@ -70,11 +72,13 @@
70
72
  | | `bottom` ◉ system-monitor | comprehensive | Graphical system monitor: CPU, memory, network, disks (`btm`). | brew `bottom` |
71
73
  | | `btop` ◉ system-monitor | comprehensive | Resource monitor with graphs and mouse support. | brew `btop` |
72
74
  | | `dust` | standard | Intuitive du: which directories eat your disk. | brew `dust` |
75
+ | | `ncdu` | comprehensive | Disk usage explorer: browse what fills the disk and delete in place. | brew `ncdu` |
73
76
  | | `duf` | standard | Friendly df: disk usage overview. | brew `duf` |
74
77
  | | `procs` | comprehensive | Modern ps with colors, tree view and search. | brew `procs` |
75
78
  | | `sys-aliases` | standard | top/htop → btm, df → duf, du → dust, ps → procs (each only if installed). | zsh snippet |
76
79
  | **network** | `httpie` | standard | Human-friendly HTTP client: `http GET api.example.com`. | brew `httpie` |
77
80
  | | `wget` | standard | Download files from the web. | brew `wget` |
81
+ | | `mosh` | comprehensive | Mobile shell: an SSH session that survives roaming, sleep and bad networks (needs mosh on both ends). | brew `mosh` |
78
82
  | **docs** | `tldr` | standard | Simplified, example-driven man pages (tlrc client): `tldr tar`. | brew `tlrc` |
79
83
  | **misc** | `watch` | standard | Run a command periodically and show its output. | brew `watch` |
80
84
  | | `tokei` | comprehensive | Count lines of code by language. | brew `tokei` |
@@ -324,6 +328,7 @@
324
328
 
325
329
  | | artifact | profile | what it is | installed with |
326
330
  |---|---|---|---|---|
331
+ | **gpu** | `nvitop` | standard | Interactive NVIDIA GPU monitor: utilization, memory and processes per GPU (Linux). | uv tool `nvitop` (linux) |
327
332
  | **notebooks** | `jupyterlab` | standard | JupyterLab, installed as an isolated uv tool. | uv tool `jupyterlab` |
328
333
  | | `marimo` | comprehensive | Reactive Python notebooks stored as plain .py files. | uv tool `marimo` |
329
334
  | **models** | `huggingface-cli` | standard | Hugging Face Hub CLI: log in, download and upload models and datasets (`hf download …`). | uv tool `huggingface_hub[cli]` |
@@ -165,8 +165,8 @@ template.
165
165
  Pin the rigsmith version **and** every answer, so a run doesn't depend on library defaults:
166
166
 
167
167
  ```sh
168
- curl -fsSL https://raw.githubusercontent.com/slimfrkha/rigsmith/v0.2.0/install.sh \
169
- | RIGSMITH_VERSION=0.2.0 sh -s -- install -c my-config.yaml -y
168
+ curl -fsSL https://raw.githubusercontent.com/slimfrkha/rigsmith/v0.3.0/install.sh \
169
+ | RIGSMITH_VERSION=0.3.0 sh -s -- install -c my-config.yaml -y
170
170
  ```
171
171
 
172
172
  Every bundled preset already pins its answers; `server` is a good start for headless machines.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "rigsmith"
3
- version = "0.2.0"
3
+ version = "0.3.0"
4
4
  description = "Set up a fresh macOS or Linux machine from a curated, extensible library of tools and configs"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.14"
@@ -1,7 +1,17 @@
1
1
  """Modern command-line tools and the aliases that swap them in for the classics."""
2
2
 
3
3
  from rigsmith.library._util import snippet, tool
4
- from rigsmith.model import Snippet
4
+ from rigsmith.model import Artifact, File, Snippet
5
+
6
+ # sessions
7
+ tool("tmux", "Terminal multiplexer: sessions survive SSH disconnects. Detach with prefix + d, come back with `ta`.")
8
+ Artifact(
9
+ id="tmux-config",
10
+ help="Sane tmux defaults (mouse, 50k scrollback, true color, windows from 1); `ta` attaches or creates a session.",
11
+ files=[File("tmux.conf", "~/.tmux.conf")],
12
+ shell=Snippet("tmux-config.zsh", 70),
13
+ requires=["tmux"],
14
+ )
5
15
 
6
16
  # files
7
17
  tool("eza", "Modern ls with colors, git status and optional icons. `eza -la --git`, `eza --tree`.")
@@ -96,6 +106,7 @@ tool(
96
106
  )
97
107
  tool("btop", "Resource monitor with graphs and mouse support.", role="system-monitor", tags=["tui"])
98
108
  tool("dust", "Intuitive du: which directories eat your disk.")
109
+ tool("ncdu", "Disk usage explorer: browse what fills the disk and delete in place.", tags=["tui"])
99
110
  tool("duf", "Friendly df: disk usage overview.")
100
111
  tool("procs", "Modern ps with colors, tree view and search.")
101
112
  snippet(
@@ -108,6 +119,7 @@ snippet(
108
119
  # network
109
120
  tool("httpie", "Human-friendly HTTP client: `http GET api.example.com`.", bin="http")
110
121
  tool("wget", "Download files from the web.")
122
+ tool("mosh", "Mobile shell: an SSH session that survives roaming, sleep and bad networks (needs mosh on both ends).")
111
123
 
112
124
  # docs & misc
113
125
  tool("tldr", "Simplified, example-driven man pages (tlrc client): `tldr tar`.", brew="tlrc")
@@ -0,0 +1,11 @@
1
+ # Managed by rigsmith (tmux-config). Put your own settings in ~/.tmux.local.conf.
2
+ set -g mouse on # scroll, select panes and resize with the mouse
3
+ set -g history-limit 50000 # long scrollback for logs
4
+ set -g default-terminal "tmux-256color"
5
+ set -as terminal-features ",xterm-256color:RGB" # true color
6
+ set -g base-index 1 # windows and panes count from 1, like the keyboard
7
+ setw -g pane-base-index 1
8
+ set -g renumber-windows on
9
+ set -sg escape-time 10 # no lag after Esc in vim/micro
10
+ set -g focus-events on
11
+ if-shell "test -f ~/.tmux.local.conf" "source-file ~/.tmux.local.conf"
@@ -12,4 +12,10 @@ tool(
12
12
  bin="hf",
13
13
  )
14
14
  tool("llm", "Simon Willison's llm: talk to LLMs from the terminal, log everything to SQLite.", sources=[UvTool("llm")])
15
+ tool(
16
+ "nvitop",
17
+ "Interactive NVIDIA GPU monitor: utilization, memory and processes per GPU (Linux).",
18
+ sources=[UvTool("nvitop", os="linux")],
19
+ tags=["tui"],
20
+ )
15
21
  tool("ollama", "Run open LLMs locally: `ollama run llama3.2`.")
@@ -0,0 +1,2 @@
1
+ # ta: attach to the "main" tmux session, or create it (the first thing to type after ssh).
2
+ alias ta='tmux new-session -A -s main'
@@ -77,7 +77,9 @@ def test_first_run_picks_a_preset_or_a_file(home):
77
77
  async def job(app):
78
78
  return await choose_base(app, bases)
79
79
 
80
- name, cfg = drive(job, ["up", "up", "up", "enter"])
80
+ names = [b.name for b in bases]
81
+ ups = names.index("reference") - names.index("server") # the cursor starts on reference
82
+ name, cfg = drive(job, ["up"] * ups + ["enter"])
81
83
  assert name == "server" and cfg.name.endswith("server.yaml")
82
84
 
83
85
  mine = home / "mine.yaml"
@@ -242,7 +242,7 @@ wheels = [
242
242
 
243
243
  [[package]]
244
244
  name = "rigsmith"
245
- version = "0.2.0"
245
+ version = "0.3.0"
246
246
  source = { editable = "." }
247
247
  dependencies = [
248
248
  { name = "rich" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes