modsmith-cli 0.1.1__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,255 @@
1
+ Metadata-Version: 2.5
2
+ Name: modsmith-cli
3
+ Version: 0.1.1
4
+ Summary: Install Minecraft modpacks and mods for the official launcher.
5
+ Project-URL: Homepage, https://modsmithmc.org/
6
+ Project-URL: Source, https://github.com/ModsmithMC/modsmith-cli
7
+ Project-URL: Documentation, https://modsmithmc.org/modsmith-cli/
8
+ Project-URL: Issues, https://github.com/ModsmithMC/modsmith-cli/issues
9
+ Author-email: MeNeither <pengyufeng2003@outlook.com>
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: End Users/Desktop
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3 :: Only
17
+ Classifier: Topic :: Games/Entertainment
18
+ Requires-Python: >=3.12
19
+ Requires-Dist: modsmith<0.4,>=0.3.5
20
+ Requires-Dist: platformdirs>=4.3
21
+ Requires-Dist: rich>=13.9
22
+ Requires-Dist: tomli-w>=1.1
23
+ Requires-Dist: typer>=0.15
24
+ Description-Content-Type: text/markdown
25
+
26
+ <p align="center">
27
+ <img src="docs/assets/banner.svg" alt="Modsmith" width="100%">
28
+ </p>
29
+
30
+ <p align="center">
31
+ <strong>Modpacks from your terminal: find, install and update Minecraft modpacks, mods, resource packs and shaders for the official launcher.</strong>
32
+ </p>
33
+
34
+ <p align="center">
35
+ <a href="https://github.com/ModsmithMC/modsmith-cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ModsmithMC/modsmith-cli/ci.yml?branch=main&style=flat-square&label=CI&logo=github" alt="CI"></a>
36
+ <a href="https://pypi.org/project/modsmith-cli/"><img src="https://img.shields.io/pypi/v/modsmith-cli?style=flat-square&color=3c8527" alt="PyPI"></a>
37
+ <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.12%2B-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python 3.12+"></a>
38
+ <img src="https://img.shields.io/badge/status-alpha-orange?style=flat-square" alt="Alpha">
39
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="MIT license"></a>
40
+ </p>
41
+
42
+ <p align="center">
43
+ <a href="https://modsmithmc.org/">Website</a> · <a href="https://modsmithmc.org/modsmith-cli/">Documentation</a> · <strong>English</strong> · <a href="README_ZH.md">简体中文</a>
44
+ </p>
45
+
46
+ ---
47
+
48
+ Modsmith prepares the game files and adds an installation to the official Minecraft launcher. It does not sign in or start the game: you choose the installation in the launcher and play.
49
+
50
+ <table>
51
+ <tr>
52
+ <td width="33%" valign="top">
53
+ <img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/package.svg" alt="" width="24" height="24">
54
+ <p><strong>Modpacks in one command</strong></p>
55
+ Install a pack from Modrinth, CurseForge or a file, with its mod loader and Minecraft.
56
+ </td>
57
+ <td width="33%" valign="top">
58
+ <img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/puzzle.svg" alt="" width="24" height="24">
59
+ <p><strong>Add what you like</strong></p>
60
+ Add mods, resource packs and shaders, with the mods they need.
61
+ </td>
62
+ <td width="33%" valign="top">
63
+ <img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/refresh.svg" alt="" width="24" height="24">
64
+ <p><strong>Updates that keep your changes</strong></p>
65
+ Update a pack and what you added, and see what changed in each release.
66
+ </td>
67
+ </tr>
68
+ <tr>
69
+ <td valign="top">
70
+ <img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/list.svg" alt="" width="24" height="24">
71
+ <p><strong>See before it happens</strong></p>
72
+ Every change is shown first and waits for your yes. <code>--dry-run</code> only shows it.
73
+ </td>
74
+ <td valign="top">
75
+ <img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/play.svg" alt="" width="24" height="24">
76
+ <p><strong>Ready in the launcher</strong></p>
77
+ Each instance gets its own installation, with the pack's icon, in the official launcher.
78
+ </td>
79
+ <td valign="top">
80
+ <img src="https://raw.githubusercontent.com/ModsmithMC/modsmithmc.github.io/main/site/assets/pixel/link.svg" alt="" width="24" height="24">
81
+ <p><strong>Bring your own</strong></p>
82
+ Take over an installation you made in the launcher, and the mods you put in it.
83
+ </td>
84
+ </tr>
85
+ </table>
86
+
87
+ ## Installation
88
+
89
+ Modsmith needs Python 3.12 or newer. Install it from PyPI as a tool with [uv](https://docs.astral.sh/uv/):
90
+
91
+ ```bash
92
+ uv tool install modsmith-cli
93
+ ```
94
+
95
+ Or with [pipx](https://pipx.pypa.io/):
96
+
97
+ ```bash
98
+ pipx install modsmith-cli
99
+ ```
100
+
101
+ Then check that it works:
102
+
103
+ ```bash
104
+ modsmith --version
105
+ ```
106
+
107
+ Coming from 0.1.0? It was installed under another name, so remove it first with `uv tool uninstall modsmith-app` or `pipx uninstall modsmith-app`. Your instances and settings stay where they are.
108
+
109
+ ## Quick start
110
+
111
+ Find a modpack, install it, and play it from the official launcher:
112
+
113
+ ```bash
114
+ modsmith search "fabulously optimized" --type modpack
115
+ modsmith install fabulously-optimized --name fo
116
+ ```
117
+
118
+ Add a mod and a shader pack, then see what the instance holds:
119
+
120
+ ```bash
121
+ modsmith add fo iris
122
+ modsmith add fo complementary-reimagined --type shader
123
+ modsmith show fo
124
+ ```
125
+
126
+ Keep it up to date:
127
+
128
+ ```bash
129
+ modsmith update fo
130
+ ```
131
+
132
+ When you have only one instance, you can leave its name out.
133
+
134
+ ## Commands
135
+
136
+ | Command | What it does |
137
+ | --- | --- |
138
+ | `install` | Install a modpack as a new instance |
139
+ | `create` | Start an empty instance, with or without a mod loader |
140
+ | `import` | Manage an installation you made in the official launcher |
141
+ | `list` | List your instances |
142
+ | `show` | List the mods, resource packs and shaders in an instance |
143
+ | `add` / `remove` | Add projects with what they need, or remove them |
144
+ | `enable` / `disable` | Turn files on or off without removing them |
145
+ | `pin` / `unpin` | Keep a project at its release, or let it update |
146
+ | `adopt` | Recognise files you put in an instance yourself |
147
+ | `update` | Update the pack and what you added |
148
+ | `move` / `delete` | Rename, move or delete an instance |
149
+ | `search` / `info` | Find projects and look at their releases |
150
+ | `loaders` | List a mod loader's versions |
151
+ | `config` | Show and change settings |
152
+
153
+ Every command explains itself with `--help`, examples included.
154
+
155
+ ## Recipes
156
+
157
+ <details>
158
+ <summary><b>Use CurseForge</b></summary>
159
+
160
+ CurseForge needs an API key, which you can get for free from the [CurseForge console](https://console.curseforge.com). Save it once:
161
+
162
+ ```bash
163
+ modsmith config set curseforge_api_key '<key>'
164
+ ```
165
+
166
+ In PowerShell, keep the single quotes: `$` starts a variable inside double quotes. Then name CurseForge projects with `curseforge:`:
167
+
168
+ ```bash
169
+ modsmith install curseforge:all-the-mods-9 --name atm9
170
+ modsmith add atm9 curseforge:jei
171
+ ```
172
+
173
+ </details>
174
+
175
+ <details>
176
+ <summary><b>Install files that must be downloaded by hand</b></summary>
177
+
178
+ Some CurseForge authors block downloads by other tools. Modsmith lists those files with a link to each. Download them into one folder, then run the same command again:
179
+
180
+ ```bash
181
+ modsmith install curseforge:all-the-mods-9 --name atm9 --from Downloads/atm9-files
182
+ ```
183
+
184
+ </details>
185
+
186
+ <details>
187
+ <summary><b>Choose optional files</b></summary>
188
+
189
+ When a pack has optional files, Modsmith asks which ones you want. To decide on the command line instead:
190
+
191
+ ```bash
192
+ modsmith install fabulously-optimized --optional shaders --optional zoom
193
+ modsmith install fabulously-optimized --all-optional
194
+ ```
195
+
196
+ Your choice is remembered, and `update` keeps it.
197
+
198
+ </details>
199
+
200
+ <details>
201
+ <summary><b>Start from nothing</b></summary>
202
+
203
+ ```bash
204
+ modsmith loaders fabric 1.21.1
205
+ modsmith create survival --minecraft 1.21.1 --loader fabric
206
+ modsmith add survival sodium lithium
207
+ ```
208
+
209
+ Without `--loader-version`, the recommended version is used.
210
+
211
+ </details>
212
+
213
+ <details>
214
+ <summary><b>Take over an existing installation</b></summary>
215
+
216
+ Give the installation its own game directory in the official launcher, start it once, then:
217
+
218
+ ```bash
219
+ modsmith import "My Fabric world"
220
+ ```
221
+
222
+ Modsmith reads its Minecraft and loader versions, and recognises the mods in it so they can be updated.
223
+
224
+ </details>
225
+
226
+ <details>
227
+ <summary><b>Use it in scripts</b></summary>
228
+
229
+ Without a terminal, Modsmith never asks: it stops and tells you to add `--yes`. Deleting needs `--force` as well. For more than that, use the [Modsmith Python library](https://github.com/ModsmithMC/modsmith-python) directly.
230
+
231
+ </details>
232
+
233
+ ## Where things go
234
+
235
+ | What | Where |
236
+ | --- | --- |
237
+ | Instances | Your user data folder, under `Modsmith/instances`. Change it with `modsmith config set instances_dir <folder>` |
238
+ | Settings | `config.toml` in your user config folder. `modsmith config path` prints it |
239
+ | Launcher installations | The official launcher's `launcher_profiles.json`, one per instance |
240
+
241
+ Set `MODSMITH_HOME` to keep everything in one folder instead.
242
+
243
+ ## Part of Modsmith
244
+
245
+ The command line is built on the Python library, which does the real work: platforms, modpack formats, mod loaders and instances.
246
+
247
+ | | What it is | Code |
248
+ | :--- | :--- | :--- |
249
+ | [Command line](https://modsmithmc.org/modsmith-cli/) | Modpacks from your terminal | [ModsmithMC/modsmith-cli](https://github.com/ModsmithMC/modsmith-cli) |
250
+ | [Python library](https://modsmithmc.org/modsmith-python/) | Build your own modpack tools | [ModsmithMC/modsmith-python](https://github.com/ModsmithMC/modsmith-python) |
251
+ | [Website](https://modsmithmc.org/) | The project's home | [ModsmithMC/modsmithmc.github.io](https://github.com/ModsmithMC/modsmithmc.github.io) |
252
+
253
+ ## License
254
+
255
+ Modsmith is released under the [MIT License](LICENSE). It is not affiliated with Mojang, Microsoft, Modrinth or CurseForge.
@@ -0,0 +1,32 @@
1
+ modsmith_cli/__init__.py,sha256=wmQAYOKCcZp-sXFfN6GqPlBhdIZK3MnxxAt-INpZIKA,258
2
+ modsmith_cli/__main__.py,sha256=hUlJvdkNJi0a3OjyAkKS6weUJDj-7sXdNeGOvpSmxu0,134
3
+ modsmith_cli/app.py,sha256=-e_ODsJHJdAY_KaOwFeZAq1hpq-Rwbc_am39DH9R-ic,6934
4
+ modsmith_cli/context.py,sha256=hK1tmJGytnTyReKicVz2db19TZVkUlEMnSwKGUmp7GY,3563
5
+ modsmith_cli/errors.py,sha256=DJA6-zwrSyVSOu-kfqCPySyqLvn0zUtPQmKTHA6qEGA,5923
6
+ modsmith_cli/target.py,sha256=bYgiSKEFUXKTGeCQHjR_7id0Pk_ewMiMhc1FcobPlz0,1312
7
+ modsmith_cli/ui.py,sha256=FXmAXurGiPGA5cD8zWw4iAo8bZ28HyrxtFlw1EQPP-I,7270
8
+ modsmith_cli/commands/__init__.py,sha256=owe-HP_g31c-kpyi_OJ3UezfJusqJyXTFxjUfvewuQo,81
9
+ modsmith_cli/commands/config.py,sha256=csOlyTwLLO7MBNW7ldxoDoodtFz1MfKAMX1JYmOn5RE,2530
10
+ modsmith_cli/commands/contents.py,sha256=FEJtEFrhWblm11JXwZ38n3stqgP2GeDBqapSdlEKLW4,11665
11
+ modsmith_cli/commands/discovery.py,sha256=hLBuIebOCnOUaJ-BSZpTI2sq82C1nFtxxsAxh6ladL8,4931
12
+ modsmith_cli/commands/install.py,sha256=FbmkOTfFvY1WYbx5PWag32FI9vcRRR3EMiLtYhVZOd4,11588
13
+ modsmith_cli/commands/instance.py,sha256=OmyvpmbR05z-7NJlaMYWUYftKAoI2OFyZZcqmddhANg,8330
14
+ modsmith_cli/commands/list.py,sha256=Pg1o3xBBgDW_q3-9nCXcXlDpvkAYFQAtKNWLFQxHaYs,1572
15
+ modsmith_cli/commands/search.py,sha256=XNz3yS0ahPTA26SCpKxUSHF6zue9QBVFHo52LfJYAwU,6261
16
+ modsmith_cli/commands/update.py,sha256=1uUSRDt6PCMTETRrh_5VYuQPx7R5HcoTjS_MJ0RHBUc,10929
17
+ modsmith_cli/core/__init__.py,sha256=O9YYe_3bsOQKuAeNhQACs9wdvoAaDH78_Hiva2JZEWo,219
18
+ modsmith_cli/core/config.py,sha256=inv0_QcIC74BoXcRkdnWQrvfW5YnbdRj9Vuzx6j6lMw,6794
19
+ modsmith_cli/core/contents.py,sha256=2zhaI9STB57M0ybZKvF3Owz6tg9kC8RbSQi_ycNJql8,2314
20
+ modsmith_cli/core/errors.py,sha256=ri5QUTKUCBRCdZMAC4kcDF0pn5L2SQeyyBd_NmDjclI,484
21
+ modsmith_cli/core/install.py,sha256=NV3hsJ79oMVFd7cDSqF4XcspFw3hVYls8xgvxJlxSVA,8283
22
+ modsmith_cli/core/names.py,sha256=QqhHadyhNDdiYeIg7dERGswDjsiZxfISOUWjT5K__0I,915
23
+ modsmith_cli/core/paths.py,sha256=bRBQsd5cW8HbvlFXCncI91Zp7LqEamvboXwiAV17SjY,1907
24
+ modsmith_cli/core/platforms.py,sha256=IC9AECseDgfww3PHJyFLU-WiMuD7ZpSbf1lqwuB4WeU,3546
25
+ modsmith_cli/core/records.py,sha256=_IDlu4_IPkRRKQM6-tR_RqoI2Wirecau0_aMJpx0mvM,2235
26
+ modsmith_cli/core/refs.py,sha256=cYCCkYiDBa-Nlq7GuNX2AhjYGehHOUaNe-PEI2LRubw,2570
27
+ modsmith_cli/core/registry.py,sha256=7IU82APQHnlKD536b5YvxlV07cd-08jwczqiI_MFaFU,6175
28
+ modsmith_cli-0.1.1.dist-info/METADATA,sha256=x-WnuB2gmwk5D24SioKgNtAGLLmdJgsHhbC4SsukP8Q,9737
29
+ modsmith_cli-0.1.1.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
30
+ modsmith_cli-0.1.1.dist-info/entry_points.txt,sha256=uOG8TIGUuQ7pPEu7bE1WAPgZ4G8Lv-edS3nrmqfJHHs,51
31
+ modsmith_cli-0.1.1.dist-info/licenses/LICENSE,sha256=qHokVf-Kk3sukgcwuGaKF6RLeOfqj0dK6r_gJ96AKIE,1066
32
+ modsmith_cli-0.1.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.33.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ modsmith = modsmith_cli.app:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MeNeither
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.