@meshy-ai/cli 0.1.0
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.
- package/.env.example +14 -0
- package/LICENSE +21 -0
- package/README.md +376 -0
- package/dist/client/endpoints/analyze-printability.d.ts +5 -0
- package/dist/client/endpoints/analyze-printability.d.ts.map +1 -0
- package/dist/client/endpoints/analyze-printability.js +7 -0
- package/dist/client/endpoints/analyze-printability.js.map +1 -0
- package/dist/client/endpoints/animate.d.ts +6 -0
- package/dist/client/endpoints/animate.d.ts.map +1 -0
- package/dist/client/endpoints/animate.js +8 -0
- package/dist/client/endpoints/animate.js.map +1 -0
- package/dist/client/endpoints/balance.d.ts +9 -0
- package/dist/client/endpoints/balance.d.ts.map +1 -0
- package/dist/client/endpoints/balance.js +27 -0
- package/dist/client/endpoints/balance.js.map +1 -0
- package/dist/client/endpoints/base.d.ts +24 -0
- package/dist/client/endpoints/base.d.ts.map +1 -0
- package/dist/client/endpoints/base.js +87 -0
- package/dist/client/endpoints/base.js.map +1 -0
- package/dist/client/endpoints/convert.d.ts +5 -0
- package/dist/client/endpoints/convert.d.ts.map +1 -0
- package/dist/client/endpoints/convert.js +7 -0
- package/dist/client/endpoints/convert.js.map +1 -0
- package/dist/client/endpoints/image-to-3d.d.ts +5 -0
- package/dist/client/endpoints/image-to-3d.d.ts.map +1 -0
- package/dist/client/endpoints/image-to-3d.js +7 -0
- package/dist/client/endpoints/image-to-3d.js.map +1 -0
- package/dist/client/endpoints/image-to-image.d.ts +5 -0
- package/dist/client/endpoints/image-to-image.d.ts.map +1 -0
- package/dist/client/endpoints/image-to-image.js +7 -0
- package/dist/client/endpoints/image-to-image.js.map +1 -0
- package/dist/client/endpoints/multi-color-print.d.ts +5 -0
- package/dist/client/endpoints/multi-color-print.d.ts.map +1 -0
- package/dist/client/endpoints/multi-color-print.js +7 -0
- package/dist/client/endpoints/multi-color-print.js.map +1 -0
- package/dist/client/endpoints/multi-image-to-3d.d.ts +5 -0
- package/dist/client/endpoints/multi-image-to-3d.d.ts.map +1 -0
- package/dist/client/endpoints/multi-image-to-3d.js +7 -0
- package/dist/client/endpoints/multi-image-to-3d.js.map +1 -0
- package/dist/client/endpoints/remesh.d.ts +5 -0
- package/dist/client/endpoints/remesh.d.ts.map +1 -0
- package/dist/client/endpoints/remesh.js +7 -0
- package/dist/client/endpoints/remesh.js.map +1 -0
- package/dist/client/endpoints/repair-printability.d.ts +5 -0
- package/dist/client/endpoints/repair-printability.d.ts.map +1 -0
- package/dist/client/endpoints/repair-printability.js +7 -0
- package/dist/client/endpoints/repair-printability.js.map +1 -0
- package/dist/client/endpoints/resize.d.ts +5 -0
- package/dist/client/endpoints/resize.d.ts.map +1 -0
- package/dist/client/endpoints/resize.js +7 -0
- package/dist/client/endpoints/resize.js.map +1 -0
- package/dist/client/endpoints/retexture.d.ts +5 -0
- package/dist/client/endpoints/retexture.d.ts.map +1 -0
- package/dist/client/endpoints/retexture.js +7 -0
- package/dist/client/endpoints/retexture.js.map +1 -0
- package/dist/client/endpoints/rigging.d.ts +6 -0
- package/dist/client/endpoints/rigging.d.ts.map +1 -0
- package/dist/client/endpoints/rigging.js +8 -0
- package/dist/client/endpoints/rigging.js.map +1 -0
- package/dist/client/endpoints/text-to-3d.d.ts +6 -0
- package/dist/client/endpoints/text-to-3d.d.ts.map +1 -0
- package/dist/client/endpoints/text-to-3d.js +8 -0
- package/dist/client/endpoints/text-to-3d.js.map +1 -0
- package/dist/client/endpoints/text-to-image.d.ts +5 -0
- package/dist/client/endpoints/text-to-image.d.ts.map +1 -0
- package/dist/client/endpoints/text-to-image.js +7 -0
- package/dist/client/endpoints/text-to-image.js.map +1 -0
- package/dist/client/errors.d.ts +23 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +82 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +48 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +147 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +298 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +97 -0
- package/dist/client/types.js.map +1 -0
- package/dist/cmd/analyze-printability.d.ts +8 -0
- package/dist/cmd/analyze-printability.d.ts.map +1 -0
- package/dist/cmd/analyze-printability.js +34 -0
- package/dist/cmd/analyze-printability.js.map +1 -0
- package/dist/cmd/animate.d.ts +9 -0
- package/dist/cmd/animate.d.ts.map +1 -0
- package/dist/cmd/animate.js +51 -0
- package/dist/cmd/animate.js.map +1 -0
- package/dist/cmd/api.d.ts +9 -0
- package/dist/cmd/api.d.ts.map +1 -0
- package/dist/cmd/api.js +50 -0
- package/dist/cmd/api.js.map +1 -0
- package/dist/cmd/auth.d.ts +19 -0
- package/dist/cmd/auth.d.ts.map +1 -0
- package/dist/cmd/auth.js +583 -0
- package/dist/cmd/auth.js.map +1 -0
- package/dist/cmd/balance.d.ts +6 -0
- package/dist/cmd/balance.d.ts.map +1 -0
- package/dist/cmd/balance.js +14 -0
- package/dist/cmd/balance.js.map +1 -0
- package/dist/cmd/convert.d.ts +8 -0
- package/dist/cmd/convert.d.ts.map +1 -0
- package/dist/cmd/convert.js +40 -0
- package/dist/cmd/convert.js.map +1 -0
- package/dist/cmd/delete.d.ts +7 -0
- package/dist/cmd/delete.d.ts.map +1 -0
- package/dist/cmd/delete.js +19 -0
- package/dist/cmd/delete.js.map +1 -0
- package/dist/cmd/image-to-3d.d.ts +12 -0
- package/dist/cmd/image-to-3d.d.ts.map +1 -0
- package/dist/cmd/image-to-3d.js +97 -0
- package/dist/cmd/image-to-3d.js.map +1 -0
- package/dist/cmd/image-to-image.d.ts +5 -0
- package/dist/cmd/image-to-image.d.ts.map +1 -0
- package/dist/cmd/image-to-image.js +56 -0
- package/dist/cmd/image-to-image.js.map +1 -0
- package/dist/cmd/make.d.ts +31 -0
- package/dist/cmd/make.d.ts.map +1 -0
- package/dist/cmd/make.js +195 -0
- package/dist/cmd/make.js.map +1 -0
- package/dist/cmd/multi-color-print.d.ts +6 -0
- package/dist/cmd/multi-color-print.d.ts.map +1 -0
- package/dist/cmd/multi-color-print.js +44 -0
- package/dist/cmd/multi-color-print.js.map +1 -0
- package/dist/cmd/multi-image-to-3d.d.ts +5 -0
- package/dist/cmd/multi-image-to-3d.d.ts.map +1 -0
- package/dist/cmd/multi-image-to-3d.js +72 -0
- package/dist/cmd/multi-image-to-3d.js.map +1 -0
- package/dist/cmd/remesh.d.ts +8 -0
- package/dist/cmd/remesh.d.ts.map +1 -0
- package/dist/cmd/remesh.js +49 -0
- package/dist/cmd/remesh.js.map +1 -0
- package/dist/cmd/repair-printability.d.ts +7 -0
- package/dist/cmd/repair-printability.d.ts.map +1 -0
- package/dist/cmd/repair-printability.js +32 -0
- package/dist/cmd/repair-printability.js.map +1 -0
- package/dist/cmd/resize.d.ts +8 -0
- package/dist/cmd/resize.d.ts.map +1 -0
- package/dist/cmd/resize.js +51 -0
- package/dist/cmd/resize.js.map +1 -0
- package/dist/cmd/resources.d.ts +18 -0
- package/dist/cmd/resources.d.ts.map +1 -0
- package/dist/cmd/resources.js +59 -0
- package/dist/cmd/resources.js.map +1 -0
- package/dist/cmd/retexture.d.ts +5 -0
- package/dist/cmd/retexture.d.ts.map +1 -0
- package/dist/cmd/retexture.js +64 -0
- package/dist/cmd/retexture.js.map +1 -0
- package/dist/cmd/rigging.d.ts +6 -0
- package/dist/cmd/rigging.d.ts.map +1 -0
- package/dist/cmd/rigging.js +40 -0
- package/dist/cmd/rigging.js.map +1 -0
- package/dist/cmd/text-to-3d.d.ts +14 -0
- package/dist/cmd/text-to-3d.d.ts.map +1 -0
- package/dist/cmd/text-to-3d.js +76 -0
- package/dist/cmd/text-to-3d.js.map +1 -0
- package/dist/cmd/text-to-image.d.ts +5 -0
- package/dist/cmd/text-to-image.d.ts.map +1 -0
- package/dist/cmd/text-to-image.js +53 -0
- package/dist/cmd/text-to-image.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/config.d.ts +46 -0
- package/dist/internal/config.d.ts.map +1 -0
- package/dist/internal/config.js +94 -0
- package/dist/internal/config.js.map +1 -0
- package/dist/internal/credentials.d.ts +106 -0
- package/dist/internal/credentials.d.ts.map +1 -0
- package/dist/internal/credentials.js +297 -0
- package/dist/internal/credentials.js.map +1 -0
- package/dist/internal/device-state.d.ts +45 -0
- package/dist/internal/device-state.d.ts.map +1 -0
- package/dist/internal/device-state.js +180 -0
- package/dist/internal/device-state.js.map +1 -0
- package/dist/internal/device.d.ts +79 -0
- package/dist/internal/device.d.ts.map +1 -0
- package/dist/internal/device.js +374 -0
- package/dist/internal/device.js.map +1 -0
- package/dist/internal/download.d.ts +34 -0
- package/dist/internal/download.d.ts.map +1 -0
- package/dist/internal/download.js +283 -0
- package/dist/internal/download.js.map +1 -0
- package/dist/internal/errors.d.ts +66 -0
- package/dist/internal/errors.d.ts.map +1 -0
- package/dist/internal/errors.js +169 -0
- package/dist/internal/errors.js.map +1 -0
- package/dist/internal/file-input.d.ts +24 -0
- package/dist/internal/file-input.d.ts.map +1 -0
- package/dist/internal/file-input.js +164 -0
- package/dist/internal/file-input.js.map +1 -0
- package/dist/internal/flags.d.ts +9 -0
- package/dist/internal/flags.d.ts.map +1 -0
- package/dist/internal/flags.js +31 -0
- package/dist/internal/flags.js.map +1 -0
- package/dist/internal/global-options.d.ts +16 -0
- package/dist/internal/global-options.d.ts.map +1 -0
- package/dist/internal/global-options.js +57 -0
- package/dist/internal/global-options.js.map +1 -0
- package/dist/internal/headless.d.ts +69 -0
- package/dist/internal/headless.d.ts.map +1 -0
- package/dist/internal/headless.js +101 -0
- package/dist/internal/headless.js.map +1 -0
- package/dist/internal/image-models.d.ts +20 -0
- package/dist/internal/image-models.d.ts.map +1 -0
- package/dist/internal/image-models.js +40 -0
- package/dist/internal/image-models.js.map +1 -0
- package/dist/internal/logger.d.ts +14 -0
- package/dist/internal/logger.d.ts.map +1 -0
- package/dist/internal/logger.js +42 -0
- package/dist/internal/logger.js.map +1 -0
- package/dist/internal/make-plan.d.ts +41 -0
- package/dist/internal/make-plan.d.ts.map +1 -0
- package/dist/internal/make-plan.js +67 -0
- package/dist/internal/make-plan.js.map +1 -0
- package/dist/internal/oauth.d.ts +95 -0
- package/dist/internal/oauth.d.ts.map +1 -0
- package/dist/internal/oauth.js +365 -0
- package/dist/internal/oauth.js.map +1 -0
- package/dist/internal/output.d.ts +15 -0
- package/dist/internal/output.d.ts.map +1 -0
- package/dist/internal/output.js +66 -0
- package/dist/internal/output.js.map +1 -0
- package/dist/internal/payload.d.ts +9 -0
- package/dist/internal/payload.d.ts.map +1 -0
- package/dist/internal/payload.js +42 -0
- package/dist/internal/payload.js.map +1 -0
- package/dist/internal/poll.d.ts +17 -0
- package/dist/internal/poll.d.ts.map +1 -0
- package/dist/internal/poll.js +27 -0
- package/dist/internal/poll.js.map +1 -0
- package/dist/internal/pricing.d.ts +23 -0
- package/dist/internal/pricing.d.ts.map +1 -0
- package/dist/internal/pricing.js +24 -0
- package/dist/internal/pricing.js.map +1 -0
- package/dist/internal/report.d.ts +40 -0
- package/dist/internal/report.d.ts.map +1 -0
- package/dist/internal/report.js +48 -0
- package/dist/internal/report.js.map +1 -0
- package/dist/internal/runtime.d.ts +66 -0
- package/dist/internal/runtime.d.ts.map +1 -0
- package/dist/internal/runtime.js +160 -0
- package/dist/internal/runtime.js.map +1 -0
- package/dist/internal/task-command.d.ts +39 -0
- package/dist/internal/task-command.d.ts.map +1 -0
- package/dist/internal/task-command.js +189 -0
- package/dist/internal/task-command.js.map +1 -0
- package/dist/internal/update-notifier.d.ts +160 -0
- package/dist/internal/update-notifier.d.ts.map +1 -0
- package/dist/internal/update-notifier.js +445 -0
- package/dist/internal/update-notifier.js.map +1 -0
- package/dist/internal/user-agent.d.ts +6 -0
- package/dist/internal/user-agent.d.ts.map +1 -0
- package/dist/internal/user-agent.js +7 -0
- package/dist/internal/user-agent.js.map +1 -0
- package/dist/internal/version.d.ts +2 -0
- package/dist/internal/version.d.ts.map +1 -0
- package/dist/internal/version.js +11 -0
- package/dist/internal/version.js.map +1 -0
- package/dist/root.d.ts +13 -0
- package/dist/root.d.ts.map +1 -0
- package/dist/root.js +148 -0
- package/dist/root.js.map +1 -0
- package/package.json +65 -0
- package/skills/meshy-cli/SKILL.md +99 -0
package/dist/root.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root command. Wires global flags and attaches every subcommand.
|
|
3
|
+
*
|
|
4
|
+
* The per-endpoint commands are registered but hidden from the root help.
|
|
5
|
+
* They remain fully supported — `meshy resources` indexes them and
|
|
6
|
+
* `meshy <resource> --help` documents each one. The root help leads with the
|
|
7
|
+
* short list instead, because it is read on every invocation (an agent pays
|
|
8
|
+
* for the whole surface each time it runs `--help`), and because a caller who
|
|
9
|
+
* wants one model should not have to pick an endpoint first.
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from "commander";
|
|
12
|
+
import { VERSION } from "./internal/version.js";
|
|
13
|
+
import { REFRESH_COMMAND, runRefreshCommand } from "./internal/update-notifier.js";
|
|
14
|
+
import { mirrorGlobalOptionsToDescendants, registerRootGlobalOptions, } from "./internal/global-options.js";
|
|
15
|
+
import { analyzePrintabilityCommand } from "./cmd/analyze-printability.js";
|
|
16
|
+
import { animateCommand } from "./cmd/animate.js";
|
|
17
|
+
import { apiCommand } from "./cmd/api.js";
|
|
18
|
+
import { authCommand } from "./cmd/auth.js";
|
|
19
|
+
import { balanceCommand } from "./cmd/balance.js";
|
|
20
|
+
import { convertCommand } from "./cmd/convert.js";
|
|
21
|
+
import { deleteCommand } from "./cmd/delete.js";
|
|
22
|
+
import { imageTo3dCommand } from "./cmd/image-to-3d.js";
|
|
23
|
+
import { imageToImageCommand } from "./cmd/image-to-image.js";
|
|
24
|
+
import { makeCommand } from "./cmd/make.js";
|
|
25
|
+
import { multiColorPrintCommand } from "./cmd/multi-color-print.js";
|
|
26
|
+
import { multiImageTo3dCommand } from "./cmd/multi-image-to-3d.js";
|
|
27
|
+
import { remeshCommand } from "./cmd/remesh.js";
|
|
28
|
+
import { repairPrintabilityCommand } from "./cmd/repair-printability.js";
|
|
29
|
+
import { resizeCommand } from "./cmd/resize.js";
|
|
30
|
+
import { resourcesCommand } from "./cmd/resources.js";
|
|
31
|
+
import { retextureCommand } from "./cmd/retexture.js";
|
|
32
|
+
import { riggingCommand } from "./cmd/rigging.js";
|
|
33
|
+
import { textTo3dCommand } from "./cmd/text-to-3d.js";
|
|
34
|
+
import { textToImageCommand } from "./cmd/text-to-image.js";
|
|
35
|
+
const ROOT_LONG = `meshy-cli — command-line interface for the Meshy AI API.
|
|
36
|
+
|
|
37
|
+
USAGE:
|
|
38
|
+
meshy make <prompt | image> [-o <path>] # the short path to a model
|
|
39
|
+
meshy <resource> <action> [flags] # one endpoint at a time — meshy resources
|
|
40
|
+
meshy api <METHOD> <PATH> [--data <json>]
|
|
41
|
+
|
|
42
|
+
EXAMPLES:
|
|
43
|
+
# one command, one model (sync: returns when the model is done)
|
|
44
|
+
meshy make "a red sports car" -o car.glb
|
|
45
|
+
meshy make ./cat.png -o out/cat/
|
|
46
|
+
meshy make "a red sports car" --dry-run # steps + estimate, no spend
|
|
47
|
+
meshy make "a red sports car" --max-credits 25 # refuse if the estimate is over
|
|
48
|
+
|
|
49
|
+
# every endpoint, one at a time
|
|
50
|
+
meshy resources # index of the 16 commands
|
|
51
|
+
meshy text-to-3d create --mode preview --prompt "a red sports car"
|
|
52
|
+
meshy image-to-3d get <task-id>
|
|
53
|
+
meshy delete <task-id> # unified: works for any task
|
|
54
|
+
|
|
55
|
+
# escape hatch for endpoints without a dedicated subcommand
|
|
56
|
+
meshy api GET /balance
|
|
57
|
+
meshy api POST /text-to-3d --data '{"mode":"preview","prompt":"car"}'
|
|
58
|
+
|
|
59
|
+
AUTHENTICATION:
|
|
60
|
+
auth login open the browser for OAuth login (loopback + PKCE)
|
|
61
|
+
auth login --with-key msy_... paste an existing API key instead of the browser flow
|
|
62
|
+
auth status which credential is in effect, and does it work
|
|
63
|
+
auth list stored profiles
|
|
64
|
+
auth use <profile> switch the active profile
|
|
65
|
+
auth logout [--all] forget the stored credential
|
|
66
|
+
|
|
67
|
+
Resolution order: --api-key > MESHY_API_KEY > stored profile. The env var
|
|
68
|
+
stays ahead of the stored credential so CI is never overridden by whatever
|
|
69
|
+
a developer logged into on that machine. Non-production --base-url-v1 uses a
|
|
70
|
+
separate credentials.dev.json, so staging cannot clobber a production login.
|
|
71
|
+
|
|
72
|
+
RESOURCE COMMANDS:
|
|
73
|
+
All 16 endpoint commands stay available and stay supported — they are
|
|
74
|
+
indexed by \`meshy resources\` instead of listed here, so this help does not
|
|
75
|
+
grow with the API. \`meshy resources --help\` also carries the shared
|
|
76
|
+
create/get/list/wait/delete verb contract.
|
|
77
|
+
|
|
78
|
+
GLOBAL FLAGS (accepted at any position in the command line):
|
|
79
|
+
--api-key <key> override MESHY_API_KEY
|
|
80
|
+
--base-url-v1 <url> override MESHY_BASE_URL_V1
|
|
81
|
+
--base-url-v2 <url> override MESHY_BASE_URL_V2
|
|
82
|
+
--format <fmt> json (default) | pretty | ndjson
|
|
83
|
+
--output, -o <path> download task artifacts to a file or directory,
|
|
84
|
+
write meta.json alongside, and replace stdout
|
|
85
|
+
with a status report (without -o: stdout keeps
|
|
86
|
+
the JSON summary).
|
|
87
|
+
--verbose, -v enable debug logging to stderr
|
|
88
|
+
--log-level <level> debug | info | warn | error | silent
|
|
89
|
+
|
|
90
|
+
ENVIRONMENT:
|
|
91
|
+
MESHY_API_KEY required unless a profile is stored
|
|
92
|
+
MESHY_CONFIG_DIR default: ~/.config/meshy
|
|
93
|
+
MESHY_CREDENTIALS_PATH exact credentials file (wins over the above)
|
|
94
|
+
MESHY_BASE_URL_V1 default: https://api.meshy.ai/openapi/v1
|
|
95
|
+
MESHY_BASE_URL_V2 default: https://api.meshy.ai/openapi/v2
|
|
96
|
+
MESHY_OAUTH_AUTHORIZE_URL override the OAuth authorize page (staging/testing)
|
|
97
|
+
MESHY_CLI_NO_BROWSER set to 1 to skip browser open (headless/agent use)
|
|
98
|
+
MESHY_POLL_INTERVAL_MS default: 3000
|
|
99
|
+
MESHY_READ_TIMEOUT_MS default: 120000
|
|
100
|
+
MESHY_LOG_LEVEL default: warn
|
|
101
|
+
MESHY_CLI_NO_UPDATE_NOTIFIER set to disable update checks
|
|
102
|
+
|
|
103
|
+
Docs: https://docs.meshy.ai/`;
|
|
104
|
+
export function buildRootCommand() {
|
|
105
|
+
const program = new Command();
|
|
106
|
+
program
|
|
107
|
+
.name("meshy-cli")
|
|
108
|
+
.description(ROOT_LONG)
|
|
109
|
+
.version(VERSION, "-V, --version")
|
|
110
|
+
.showHelpAfterError();
|
|
111
|
+
registerRootGlobalOptions(program);
|
|
112
|
+
// Listed in the root help.
|
|
113
|
+
program.addCommand(makeCommand);
|
|
114
|
+
program.addCommand(authCommand);
|
|
115
|
+
program.addCommand(balanceCommand);
|
|
116
|
+
program.addCommand(resourcesCommand);
|
|
117
|
+
program.addCommand(apiCommand);
|
|
118
|
+
// Registered and supported, but indexed by `meshy resources` rather than
|
|
119
|
+
// printed on every --help. Hiding is a help-text decision only: these keep
|
|
120
|
+
// working exactly as before, and the surface tests walk them either way.
|
|
121
|
+
for (const cmd of [
|
|
122
|
+
textTo3dCommand,
|
|
123
|
+
imageTo3dCommand,
|
|
124
|
+
multiImageTo3dCommand,
|
|
125
|
+
remeshCommand,
|
|
126
|
+
convertCommand,
|
|
127
|
+
resizeCommand,
|
|
128
|
+
riggingCommand,
|
|
129
|
+
animateCommand,
|
|
130
|
+
retextureCommand,
|
|
131
|
+
textToImageCommand,
|
|
132
|
+
imageToImageCommand,
|
|
133
|
+
multiColorPrintCommand,
|
|
134
|
+
analyzePrintabilityCommand,
|
|
135
|
+
repairPrintabilityCommand,
|
|
136
|
+
deleteCommand,
|
|
137
|
+
]) {
|
|
138
|
+
program.addCommand(cmd, { hidden: true });
|
|
139
|
+
}
|
|
140
|
+
// Hidden self-command used by the detached background cache-refresh child.
|
|
141
|
+
// commander v13: .command(name, { hidden: true }) with NO description arg.
|
|
142
|
+
program.command(REFRESH_COMMAND, { hidden: true }).action(async () => {
|
|
143
|
+
await runRefreshCommand();
|
|
144
|
+
});
|
|
145
|
+
mirrorGlobalOptionsToDescendants(program);
|
|
146
|
+
return program;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=root.js.map
|
package/dist/root.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@meshy-ai/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Official command-line interface for the Meshy AI API — text-to-3D, image-to-3D, remesh, rigging, animate, retexture, 2D images, multi-color print, balance.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"packageManager": "pnpm@11.18.0",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/meshy-dev/meshy-cli.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/meshy-dev/meshy-cli#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/meshy-dev/meshy-cli/issues"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"meshy",
|
|
21
|
+
"meshy-ai",
|
|
22
|
+
"cli",
|
|
23
|
+
"3d",
|
|
24
|
+
"text-to-3d",
|
|
25
|
+
"image-to-3d",
|
|
26
|
+
"rigging",
|
|
27
|
+
"animation"
|
|
28
|
+
],
|
|
29
|
+
"bin": {
|
|
30
|
+
"meshy-cli": "./dist/index.js",
|
|
31
|
+
"meshy": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"main": "dist/index.js",
|
|
34
|
+
"types": "dist/index.d.ts",
|
|
35
|
+
"files": [
|
|
36
|
+
"dist",
|
|
37
|
+
"README.md",
|
|
38
|
+
"LICENSE",
|
|
39
|
+
".env.example",
|
|
40
|
+
"skills"
|
|
41
|
+
],
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=20"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsc",
|
|
47
|
+
"clean": "rm -rf dist",
|
|
48
|
+
"dev": "tsx src/index.ts",
|
|
49
|
+
"start": "node dist/index.js",
|
|
50
|
+
"test": "tsx --test tests/**/*.test.ts",
|
|
51
|
+
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.test.json",
|
|
52
|
+
"prepare": "test -f dist/index.js || npm run build",
|
|
53
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
54
|
+
},
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"commander": "^13.0.0",
|
|
57
|
+
"sharp": "^0.34.5",
|
|
58
|
+
"zod": "^3.23.8"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@types/node": "^22.9.0",
|
|
62
|
+
"tsx": "^4.19.2",
|
|
63
|
+
"typescript": "^5.6.3"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meshy-cli
|
|
3
|
+
description: "Generate 3D models and 2D images with the Meshy API through the meshy-cli command — text-to-3D, image-to-3D, remesh, rigging, animation, retexture, printability. Use for any Meshy asset request."
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires meshy-cli on PATH and a stored credential or MESHY_API_KEY; network access to api.meshy.ai
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
cli-help: "meshy --help"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# meshy-cli
|
|
12
|
+
|
|
13
|
+
## Setup
|
|
14
|
+
|
|
15
|
+
`npm i -g meshy-cli`, then `meshy auth login` (browser) or
|
|
16
|
+
`meshy auth login --with-key msy_...`. `MESHY_API_KEY` also works and wins over
|
|
17
|
+
a stored profile, which is what CI wants. Never echo the key back or write it
|
|
18
|
+
into a shell profile.
|
|
19
|
+
|
|
20
|
+
## One model, one command
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
meshy make "a red sports car" -o car.glb # prompt → text-to-3d preview → refine
|
|
24
|
+
meshy make ./cat.png -o out/cat/ # image → image-to-3d, textured
|
|
25
|
+
meshy make "a red sports car" --dry-run # planned steps + estimate, no spend
|
|
26
|
+
meshy make "..." --max-credits 25 # refuse to start over budget
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The input decides the chain and nothing else does. If step 2 fails, the error's
|
|
30
|
+
`hint` is the command that resumes from step 1's task — run it verbatim rather
|
|
31
|
+
than starting over, or the finished step is paid for twice.
|
|
32
|
+
|
|
33
|
+
## Everything else
|
|
34
|
+
|
|
35
|
+
`meshy resources` indexes the 16 endpoint commands; each carries the same verbs:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
meshy <resource> create [flags] [--data '<json>'] [--async] [--timeout <s>]
|
|
39
|
+
meshy <resource> get|wait|delete <task-id>
|
|
40
|
+
meshy <resource> list [--page-size <n>]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`create` blocks until the task is terminal; `--async` returns the id instead.
|
|
44
|
+
`-o <path>` downloads artifacts (a directory for multi-file results) and writes
|
|
45
|
+
a `meta.json` sidecar; without `-o`, stdout is the task JSON — parse ids from
|
|
46
|
+
there, never from text shown in chat. `--data '<json>'` reaches any field the
|
|
47
|
+
CLI has no flag for, and `meshy api <METHOD> <PATH>` reaches any endpoint it has
|
|
48
|
+
no command for.
|
|
49
|
+
|
|
50
|
+
## Constraints that will bite
|
|
51
|
+
|
|
52
|
+
These are API rules, not preferences — ignoring them produces failed tasks:
|
|
53
|
+
|
|
54
|
+
- **`refine` only works on a `text-to-3d` preview** (it consumes that task's
|
|
55
|
+
latents). Uploaded models, `image-to-3d` output and remeshed meshes are
|
|
56
|
+
textured with `retexture` instead.
|
|
57
|
+
- **`rigging` needs a textured biped GLB** under 300k faces, with clear limbs —
|
|
58
|
+
not props, quadrupeds or untextured drafts. Too dense? `remesh` first. A
|
|
59
|
+
successful rigging task already bundles walking and running clips, so check
|
|
60
|
+
its result before calling `animate`.
|
|
61
|
+
- **`animate` takes a rigging task id**, not a model task id, plus an integer
|
|
62
|
+
`--action-id`.
|
|
63
|
+
- **`repair-printability` drops textures and invalidates UVs.** Run it before
|
|
64
|
+
texturing, or re-`retexture` afterwards.
|
|
65
|
+
- **`multi-image-to-3d` is beta**; use `image-to-3d` unless multi-view input was
|
|
66
|
+
explicitly asked for.
|
|
67
|
+
- `image-to-3d` defaults to an untextured draft mesh; `--should-texture true`
|
|
68
|
+
(what `make` uses) produces a textured model in one task.
|
|
69
|
+
|
|
70
|
+
## Finding an animation id
|
|
71
|
+
|
|
72
|
+
`--action-id` is an integer from Meshy's animation library. Look it up from the
|
|
73
|
+
public catalog — no key required:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
curl -s "https://api.meshy.ai/web/public/animations/resources" \
|
|
77
|
+
| jq -r '.result.list[] | select(.category=="Fighting") | "\(.id)\t\(.name)"'
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Categories: WalkAndRun, BodyMovements, DailyActions, Fighting, Dancing.
|
|
81
|
+
`?category=Fighting` narrows the response; other query parameters are ignored.
|
|
82
|
+
|
|
83
|
+
## When something fails
|
|
84
|
+
|
|
85
|
+
Exit codes: `0` ok · `2` usage · `3` auth · `4` validation · `5` not found ·
|
|
86
|
+
`6` rate limit · `7` network · `8` timed out · `9` out of credits.
|
|
87
|
+
|
|
88
|
+
- Exit 9 → run `meshy balance`, relay the number, do not retry.
|
|
89
|
+
- Exit 6 → back off; the CLI does not retry for you.
|
|
90
|
+
- A `FAILED` task → relay `task_error.message` verbatim; do not guess a cause.
|
|
91
|
+
- Any error payload may carry `hint` — a command to run. Prefer it over
|
|
92
|
+
improvising.
|
|
93
|
+
|
|
94
|
+
JSON object output may also carry `_notice.update` when a newer meshy-cli
|
|
95
|
+
exists; pass its `command` on to the user.
|
|
96
|
+
|
|
97
|
+
## Docs
|
|
98
|
+
|
|
99
|
+
Endpoint reference and pricing: https://docs.meshy.ai/en/api/
|