nexus-tui 0.1.14__py3-none-any.whl → 0.1.16__py3-none-any.whl

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.
@@ -0,0 +1,200 @@
1
+ Metadata-Version: 2.4
2
+ Name: nexus-tui
3
+ Version: 0.1.16
4
+ Summary: A TUI orchestrator to manage your installed terminal tools—access everything through a single command
5
+ License-File: LICENSE
6
+ Requires-Python: >=3.12
7
+ Requires-Dist: platformdirs>=4.0.0
8
+ Requires-Dist: pydantic>=2.12.5
9
+ Requires-Dist: structlog>=24.1.0
10
+ Requires-Dist: textual>=0.86.0
11
+ Requires-Dist: thefuzz>=0.20.0
12
+ Description-Content-Type: text/markdown
13
+
14
+ # Nexus
15
+
16
+ Nexus is a terminal dashboard that lets you launch your favorite CLI and TUI tools (like Neovim, Git UIs, or custom scripts) from a single interactive menu. No memorizing commands or directories required.
17
+
18
+ Think of Nexus as a launcher for terminal tools, similar to how Raycast or Alfred launch GUI apps.
19
+
20
+ **Source Code**: https://github.com/jdluu/Nexus
21
+
22
+ ![Nexus Logic Demo](https://raw.githubusercontent.com/jdluu/Nexus/main/docs/nexus_demo.png)
23
+ *Caption: Main dashboard showing projects and tools.*
24
+
25
+ ## Prerequisites
26
+
27
+ * Python 3.12 or newer.
28
+ * The [`uv`](https://docs.astral.sh/uv/) package manager.
29
+ * **Recommended**: A modern terminal emulator with TrueColor support (e.g., [Windows Terminal](https://aka.ms/terminal), [ghostty](https://ghostty.org/), [Kitty](https://sw.kovidgoyal.net/kitty/), or [WezTerm](https://wezfurlong.org/wezterm/)).
30
+ * **Recommended**: A [Nerd Font](https://www.nerdfonts.com/) for optimal icon rendering.
31
+
32
+ ## Installation
33
+
34
+ It is recommended to use `uv`, a fast Python package and tool manager (similar to pipx), for a clean, isolated global installation.
35
+
36
+ ```bash
37
+ # Install globally so you can run 'nexus' from anywhere
38
+ uv tool install nexus-tui
39
+ ```
40
+
41
+ **Alternative (Standard pip)**:
42
+ You can also install via pip, though it is recommended `uv` or `pipx` to keep dependencies isolated.
43
+ ```bash
44
+ pip install nexus-tui
45
+ ```
46
+
47
+ ### Upgrade
48
+
49
+ To update to the latest version:
50
+ ```bash
51
+ uv tool upgrade nexus-tui
52
+ ```
53
+
54
+ ### Local Development
55
+
56
+ For contributors who want to modify the source code:
57
+
58
+ ```bash
59
+ git clone https://github.com/jdluu/Nexus
60
+ cd Nexus
61
+ uv tool install --editable .
62
+ ```
63
+
64
+ ## Cross Platform Support
65
+
66
+ Nexus supports Linux, MacOS, and Windows.
67
+
68
+ * **Linux**: Fully supported on standard terminals.
69
+ * **MacOS**: Fully supported.
70
+ * **Windows**: Recommended to use PowerShell 7 or Git Bash within Windows Terminal.
71
+
72
+ *Note: Some tools you launch may behave differently depending on your shell and operating system.*
73
+
74
+ ## Configuration
75
+
76
+ Nexus utilizes standard configuration paths. You can find your config file at the location listed in the **First Run** section above.
77
+
78
+ ### Minimal Starter Config
79
+
80
+ Copy this into your `tools.toml` to get started immediately:
81
+
82
+ ```toml
83
+ # Define where your code projects live
84
+ project_root = "~/Projects"
85
+
86
+ # Add a simple tool to open a shell in the selected project
87
+ [[tool]]
88
+ label = "Shell"
89
+ category = "UTIL"
90
+ description = "Open a shell in the project"
91
+ command = "$SHELL"
92
+ requires_project = true
93
+ ```
94
+
95
+ ### Understanding "Projects"
96
+
97
+ A **Project** is any directory found inside your `project_root`. Nexus scans this folder and lets you select a specific project before launching a tool.
98
+
99
+ For example, if you select the "Shell" tool above, Nexus will ask you to pick a project (e.g., `~/Projects/MyApp`). It then launches `$SHELL` inside that directory.
100
+
101
+ ### Tool Definitions
102
+
103
+ Tools are defined using the `[[tool]]` table.
104
+
105
+ ```toml
106
+ [[tool]]
107
+ label = "Neovim"
108
+ category = "DEV"
109
+ description = "Text editor"
110
+ command = "nvim"
111
+ requires_project = true
112
+ ```
113
+
114
+ * **label**: The display name.
115
+ * **category**: The grouping identifier (e.g., DEV, UTIL).
116
+ * **description**: A short explanation of the function.
117
+ * **command**: The executable command line instruction.
118
+ * **requires_project**: If `true`, Nexus prompts for a project before running. If `false`, it runs immediately in the current directory.
119
+
120
+ ### Keybindings
121
+
122
+ Nexus comes with default keybindings (see **Controls** below). You can override them in the `[keybindings]` section of your config.
123
+
124
+ ```toml
125
+ [keybindings]
126
+ # Override default quit to Alt+Q
127
+ quit = "alt+q"
128
+ # Override favorite toggle
129
+ toggle_favorite = "ctrl+f"
130
+ ```
131
+
132
+ ## First Run Experience
133
+
134
+ 1. Run `nexus` from your terminal.
135
+ 2. Nexus creates a default configuration file at:
136
+ * **Linux**: `~/.config/nexus/tools.toml`
137
+ * **MacOS**: `~/Library/Application Support/Nexus/tools.toml`
138
+ * **Windows**: `%LOCALAPPDATA%\Nexus\tools.toml`
139
+ 3. On first launch, you will see an empty dashboard.
140
+ 4. Edit the configuration file (see below) to add your tools and project roots.
141
+ 5. Restart Nexus to see your changes.
142
+
143
+ ### Features
144
+
145
+ * **Smart Search**: Instantly find what you need with fuzzy matching, so you don't have to remember exact names.
146
+ * **Persistence**: Nexus remembers your recent projects and favorite tools, so common workflows are always one keystroke away.
147
+ * **Favorites**: Pin your most-used tools to the top of the list for quick access.
148
+
149
+ ### Controls
150
+
151
+ * **Arrow Keys**: Navigate through lists.
152
+ * **Enter**: Confirm selection or launch tool.
153
+ * **Ctrl+F**: Toggle the favorite status of a tool.
154
+ * **TypeAnywhere**: Instantly filter lists by typing in the search bar.
155
+ * **Esc**: Reset the search filter.
156
+ * **Ctrl+B**: Go back (on picker screens).
157
+ * **Ctrl+C**: Exit the application.
158
+ * **Ctrl+H**: Show Help / Controls.
159
+
160
+ ## FAQ & Troubleshooting
161
+
162
+ ### Does Nexus discover tools automatically?
163
+ No. You must define your tools in `tools.toml` so you have full control over what appears in your dashboard.
164
+
165
+ ### Is this a replacement for my shell?
166
+ No. Nexus is a dashboard. When you launch a tool, it temporarily suspends itself to let the tool take over your terminal found. When the tool exits, Nexus returns.
167
+
168
+ ### My icons look broken (rectangles or question marks).
169
+ This usually means you aren't using a **Nerd Font**.
170
+ 1. Download a font from [Nerd Fonts](https://www.nerdfonts.com/).
171
+ 2. Install it on your system.
172
+ 3. Configure your terminal emulator to use that font.
173
+
174
+ ### I see a blank screen on launch.
175
+ Check that your `tools.toml` file exists and has at least one valid `[[tool]]` entry. See the **Configuration** section for a minimal example.
176
+
177
+ ## Development (For Contributors)
178
+
179
+ To configure the development environment:
180
+
181
+ 1. Synchronize dependencies:
182
+ ```bash
183
+ uv sync
184
+ ```
185
+
186
+ 2. Run the application locally:
187
+ ```bash
188
+ uv run nexus
189
+ ```
190
+
191
+ 3. Execute the comprehensive test suite:
192
+ ```bash
193
+ uv run pytest --cov=nexus
194
+ ```
195
+
196
+ 4. Perform static analysis and type checking:
197
+ ```bash
198
+ uv run ruff check .
199
+ uv run mypy .
200
+ ```
@@ -0,0 +1,28 @@
1
+ nexus/__init__.py,sha256=bti-BCTw_hFdmSoy8872Cikse7LxK1e0aN5SaabgwIg,37
2
+ nexus/app.py,sha256=7Kp_LVdhihhsPnL_8q_U-WAggKC9hZFqzf5rXljQ37k,3184
3
+ nexus/config.py,sha256=zsonhQ_lNeaJsWi68GY-i8k0AYgmugWH6sDE_aD8bIQ,5875
4
+ nexus/container.py,sha256=lQA2WB1WqvW9Y8lbY2QUYkpDTtep1ts00XBD2d3JY70,1152
5
+ nexus/logger.py,sha256=sRhNYYErXzPzZ84uLm7MLH6NJb6EAGKUijRF1AvnfeU,1337
6
+ nexus/models.py,sha256=elqUVjMMxa2RZoETtxKJkTpRrpLuglP43mBOwVSbA0o,1100
7
+ nexus/state.py,sha256=52E6KO_TJFT483NDL7RsGl3swwUWh29nvN9drIP2PxA,2676
8
+ nexus/style.tcss,sha256=4z9vrdd0MdxRUuzo7ehlduFnfpbukVCGoZUyjp3hkLI,11176
9
+ nexus/tools.toml,sha256=uYfBA7WMLAu6fPDRzB4p5ggk0aVTUpDPrxRrzLnGiMA,740
10
+ nexus/screens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ nexus/screens/create_project.py,sha256=UBZp7qT2Of9NrHPlfKcaPnE0DWza7xyTxzFAYubZuQg,3512
12
+ nexus/screens/error.py,sha256=LQOkb-rLHbcYCRPrBybuusABcf73RbwN9q_f3N2VqmE,1817
13
+ nexus/screens/help.py,sha256=9oFzXQMYzdhBAizSRPI5FoJcq4Pn62QnUkJ8YUaeoro,1732
14
+ nexus/screens/project_picker.py,sha256=LfxxkOIknfVbNBGBNXqmE5CmA2Fa6lOIyO7tsXcUKaI,10342
15
+ nexus/screens/theme_picker.py,sha256=KZ_L2QYnv95bdJGd3PcQnb0QJe1sgr3EIXm7Vd-tz-8,3479
16
+ nexus/screens/tool_selector.py,sha256=SHgNJVbDXxi5hXwRty9FEQTvfG0jbBLZ9i9YXoxp74Y,8561
17
+ nexus/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ nexus/services/executor.py,sha256=SqeZa6owOTc04dCvMChiWVsGOWnrO1YW2gUvT5m4Nuk,1494
19
+ nexus/services/scanner.py,sha256=YTx6WQBAvERK3zfdkHfwfj0Ygj9ZL1idhO8JUr_IF4M,1311
20
+ nexus/widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ nexus/widgets/footer.py,sha256=O0ez8SRn9I5ag0mBY5WAd2-rUEaLV2kScs8-BlUTfso,2899
22
+ nexus/widgets/tool_browser.py,sha256=Rmdz5NAvHeegmjmYIiTpy0aqr1wkJDKcsMu96B1EUPQ,9359
23
+ nexus/widgets/tool_list_item.py,sha256=gpPC34cTK-sJJRzr9-gUvmIpJaEvpC0Gj1rmQTKUuQA,5703
24
+ nexus_tui-0.1.16.dist-info/METADATA,sha256=0QRUq9rMPcX3G1_2ToQwtlLLLJFzM2z_kdBJ-DyB09Y,6508
25
+ nexus_tui-0.1.16.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
26
+ nexus_tui-0.1.16.dist-info/entry_points.txt,sha256=FLWKPqsNYxxaU0JyVfJoKJDTrFtx-LJVPejbvUdnc6o,41
27
+ nexus_tui-0.1.16.dist-info/licenses/LICENSE,sha256=gtmNw2nOOujPlKSYxW0EQC-cg2aSe--mVlMxElz5AmI,1062
28
+ nexus_tui-0.1.16.dist-info/RECORD,,
@@ -1,150 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: nexus-tui
3
- Version: 0.1.14
4
- Summary: A TUI orchestrator to manage your installed terminal tools—access everything through a single command
5
- License-File: LICENSE
6
- Requires-Python: >=3.12
7
- Requires-Dist: platformdirs>=4.0.0
8
- Requires-Dist: pydantic>=2.12.5
9
- Requires-Dist: structlog>=24.1.0
10
- Requires-Dist: textual>=0.86.0
11
- Requires-Dist: thefuzz>=0.20.0
12
- Description-Content-Type: text/markdown
13
-
14
- # Nexus
15
-
16
- Nexus is a TUI orchestrator designed to help you organize and launch your collection of terminal utilities. Instead of memorizing every tool's unique command, Nexus provides a centralized dashboard to discover and run your installed TUIs from a single, intuitive interface.
17
-
18
- ## Prerequisites
19
-
20
- * Python 3.12 or newer.
21
- * The `uv` package manager.
22
- * **Recommended**: A modern terminal emulator with TrueColor support (e.g., [Windows Terminal](https://aka.ms/terminal), [ghostty](https://ghostty.org/), [Kitty](https://sw.kovidgoyal.net/kitty/), or [WezTerm](https://wezfurlong.org/wezterm/)).
23
- * **Recommended**: A [Nerd Font](https://www.nerdfonts.com/) for optimal icon rendering.
24
-
25
- ## Installation
26
-
27
- Install Nexus globally using the `uv` tool manager:
28
-
29
- ```bash
30
- # Always latest stable
31
- uv tool install nexus-tui
32
- ```
33
-
34
- ### Upgrade
35
-
36
- To update to the latest version:
37
- ```bash
38
- uv tool upgrade nexus-tui
39
- ```
40
-
41
- ### Local Development
42
-
43
- ```bash
44
- git clone https://github.com/jdluu/Nexus
45
- cd Nexus
46
- uv tool install --editable .
47
- ```
48
-
49
- ## Cross Platform Support
50
-
51
- Nexus supports Linux, MacOS, and Windows.
52
-
53
- * **Linux**: Fully supported on standard terminals.
54
- * **MacOS**: Fully supported.
55
- * **Windows**: Recommended to use PowerShell 7 or Git Bash within Windows Terminal.
56
-
57
- ## Configuration
58
-
59
- Nexus utilizes the standard configuration paths for your operating system.
60
-
61
- * **Linux**: `~/.config/nexus/tools.toml`
62
- * **MacOS**: `~/Library/Application Support/Nexus/tools.toml`
63
- * **Windows**: `%LOCALAPPDATA%\Nexus\tools.toml`
64
-
65
- ### Project Directory
66
-
67
- To define the workspace where Nexus looks for projects, add the `project_root` key to your configuration file.
68
-
69
- ```toml
70
- # Example configuration
71
- project_root = "~/Development"
72
- ```
73
-
74
- ### Tool Definitions
75
-
76
- Tools are defined in the configuration file using the `[[tool]]` table.
77
-
78
- ```toml
79
- [[tool]]
80
- label = "Neovim"
81
- category = "DEV"
82
- description = "Text editor"
83
- command = "nvim"
84
- requires_project = true
85
- ```
86
-
87
- * **label**: The display name.
88
- * **category**: The grouping identifier (for example DEV, UTIL).
89
- * **description**: A short explanation of the function.
90
- * **command**: The executable command line instruction.
91
- * **requires_project**: Indicates if the tool needs a working directory.
92
-
93
- ### Keybindings
94
-
95
- Custom keybindings can be defined in the `[keybindings]` section.
96
-
97
- ```toml
98
- [keybindings]
99
- quit = "alt+q"
100
- toggle_favorite = "ctrl+f"
101
- ```
102
-
103
- ## Usage
104
-
105
- Launch the application using the following command:
106
-
107
- ```bash
108
- nexus
109
- ```
110
-
111
- ### Features
112
-
113
- * **Smart Search**: Filter projects using fuzzy matching logic.
114
- * **Persistence**: Automatically tracks recent projects and favorites.
115
- * **Favorites**: Pin frequently used tools for quick access.
116
-
117
- ### Controls
118
-
119
- * **Arrow Keys**: Navigate through lists.
120
- * **Enter**: Confirm selection or launch tool.
121
- * **Ctrl+F**: Toggle the favorite status of a tool.
122
- * **TypeAnywhere**: Instantly filter lists by typing in the search bar.
123
- * **Esc**: Reset the search filter.
124
- * **Ctrl+B**: Go back (on picker screens).
125
- * **Ctrl+Q**: Exit the application.
126
-
127
- ## Development
128
-
129
- To configure the development environment:
130
-
131
- 1. Synchronize dependencies:
132
- ```bash
133
- uv sync
134
- ```
135
-
136
- 2. Run the application locally:
137
- ```bash
138
- uv run nexus
139
- ```
140
-
141
- 3. Execute the comprehensive test suite:
142
- ```bash
143
- uv run pytest --cov=nexus
144
- ```
145
-
146
- 4. Perform static analysis and type checking:
147
- ```bash
148
- uv run ruff check .
149
- uv run mypy .
150
- ```
@@ -1,26 +0,0 @@
1
- nexus/__init__.py,sha256=bti-BCTw_hFdmSoy8872Cikse7LxK1e0aN5SaabgwIg,37
2
- nexus/app.py,sha256=7Kp_LVdhihhsPnL_8q_U-WAggKC9hZFqzf5rXljQ37k,3184
3
- nexus/config.py,sha256=VfLaUuQn31gD_IC6LTkK5FE5b84JzIwOKu0arG0Z8f0,5467
4
- nexus/container.py,sha256=lQA2WB1WqvW9Y8lbY2QUYkpDTtep1ts00XBD2d3JY70,1152
5
- nexus/logger.py,sha256=sRhNYYErXzPzZ84uLm7MLH6NJb6EAGKUijRF1AvnfeU,1337
6
- nexus/models.py,sha256=elqUVjMMxa2RZoETtxKJkTpRrpLuglP43mBOwVSbA0o,1100
7
- nexus/state.py,sha256=dmBnHpzws2aErG42LaZFLXcse_9EwecmZy2dFgot4Tw,2532
8
- nexus/style.tcss,sha256=7PIAYBF2m6L_QnqTyFYyNQThkHWN3pQds5zH52Hq-ho,10067
9
- nexus/tools.toml,sha256=uYfBA7WMLAu6fPDRzB4p5ggk0aVTUpDPrxRrzLnGiMA,740
10
- nexus/screens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- nexus/screens/create_project.py,sha256=uVAQioL6C-3mtriQfvuylUD0kX3sYA0KWgM0yWvzF9M,3597
12
- nexus/screens/error.py,sha256=LQOkb-rLHbcYCRPrBybuusABcf73RbwN9q_f3N2VqmE,1817
13
- nexus/screens/help.py,sha256=lG6Lkt-t3kPGcbltKZiFfv5S5d57ZiZkU4cc_jfM3Nw,1697
14
- nexus/screens/project_picker.py,sha256=ghXHKRLd4fxP8LWASi6_C8_BzEZFv266bsD591OSEyQ,9590
15
- nexus/screens/theme_picker.py,sha256=KZ_L2QYnv95bdJGd3PcQnb0QJe1sgr3EIXm7Vd-tz-8,3479
16
- nexus/screens/tool_selector.py,sha256=Q2ZeCxxifiyvScxwF4-Ke3sCM0ZolHODpfsIHHp9A-c,19038
17
- nexus/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- nexus/services/executor.py,sha256=SqeZa6owOTc04dCvMChiWVsGOWnrO1YW2gUvT5m4Nuk,1494
19
- nexus/services/scanner.py,sha256=YTx6WQBAvERK3zfdkHfwfj0Ygj9ZL1idhO8JUr_IF4M,1311
20
- nexus/widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- nexus/widgets/tool_list_item.py,sha256=H0C04ef4OreL9vmyiku3hTA0SAXLoKWoGagIMn73jpI,5880
22
- nexus_tui-0.1.14.dist-info/METADATA,sha256=yVod_20wGc0w--UitU8sR5KpOltuv4Lv6TTNdQELFEI,3861
23
- nexus_tui-0.1.14.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
24
- nexus_tui-0.1.14.dist-info/entry_points.txt,sha256=FLWKPqsNYxxaU0JyVfJoKJDTrFtx-LJVPejbvUdnc6o,41
25
- nexus_tui-0.1.14.dist-info/licenses/LICENSE,sha256=gtmNw2nOOujPlKSYxW0EQC-cg2aSe--mVlMxElz5AmI,1062
26
- nexus_tui-0.1.14.dist-info/RECORD,,