unity-hub-cli 0.16.0 → 0.17.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.
Files changed (2) hide show
  1. package/README.md +33 -68
  2. package/package.json +17 -17
package/README.md CHANGED
@@ -4,104 +4,69 @@
4
4
 
5
5
  A CLI tool that displays the same content as Unity Hub in an Ink-based TUI, allows navigation with arrow keys/`j`/`k`, and launches Unity Editor by pressing `o`.
6
6
 
7
- <img width="1678" height="1460" alt="スクリーンショット 2025-10-27 23 44 40" src="https://github.com/user-attachments/assets/db3cc995-820e-490b-a43b-393893197ab4" />
7
+ <img width="1678" height="1460" alt="Screenshot 2025-10-27 23 44 40" src="https://github.com/user-attachments/assets/db3cc995-820e-490b-a43b-393893197ab4" />
8
8
 
9
9
  ## Requirements
10
10
 
11
11
  - macOS or Windows 10/11
12
12
  - Node.js 20+
13
- - Unity Hub
14
- - macOS: `~/Library/Application Support/UnityHub/projects-v1.json`
15
- - Windows: `%APPDATA%\UnityHub\projects-v1.json`
16
- - Windows Editor path (default): `C:\\Program Files\\Unity\\Hub\\Editor\\<version>\\Editor\\Unity.exe`
17
13
 
18
- ## Usage
19
-
20
- ### Development
14
+ ## Installation & Run
21
15
 
22
16
  ```bash
23
- npm install
24
- npm run dev
17
+ npx unity-hub-cli
25
18
  ```
26
19
 
27
- ### Build
20
+ Or install globally to use the `unity-hub-cli` command directly:
28
21
 
29
22
  ```bash
30
- npm run build
23
+ npm install -g unity-hub-cli
24
+ unity-hub-cli
31
25
  ```
32
26
 
33
- ### Run
34
-
35
- After building, `dist/index.js` will be generated. You can also run it directly via npx.
27
+ <details>
28
+ <summary>Notes for Windows</summary>
36
29
 
37
- ```bash
38
- npx unity-hub-cli
39
- # or
40
- node dist/index.js
41
- ```
30
+ Works from PowerShell and CMD. Git Bash is supported when running inside a ConPTY-based terminal (Windows Terminal or VS Code/Cursor integrated terminal).
42
31
 
43
- On Windows, it works from PowerShell and CMD. Git Bash is supported when running inside a ConPTY-based terminal (Windows Terminal or VS Code/Cursor integrated terminal). On standalone Git Bash (MinTTY), raw mode is not supported; use PowerShell/CMD/Windows Terminal. If you must use MinTTY Git Bash, run one of the following:
32
+ On standalone Git Bash (MinTTY), raw mode is not supported; use PowerShell/CMD/Windows Terminal. If you must use MinTTY Git Bash, run one of the following:
44
33
 
45
34
  - `winpty cmd.exe /c npx unity-hub-cli`
46
35
  - `winpty powershell.exe -NoProfile -Command npx unity-hub-cli`
47
- - If already built: `npm run build && winpty node dist/index.js`
48
36
 
49
- See `https://github.com/vadimdemedes/ink/#israwmodesupported`.
37
+ </details>
50
38
 
51
- By default, the project list uses the Git repository root folder name when available.
52
-
53
- ### CLI Options
54
-
55
- - `--no-git-root-name`: Display Unity project titles instead of Git repository root folder names.
56
- - `--hide-branch`: Hide the Git branch column.
57
- - `--hide-path`: Hide the project path column.
58
-
59
- ## Release Automation
60
-
61
- Version and release management is automated using release-please and GitHub Actions.
39
+ ## Controls
62
40
 
63
- - `.github/workflows/release-please.yml` runs on push to `main` or manual trigger
64
- - The action references `release-please-config.json` and `.release-please-manifest.json` to create release PRs and tags
65
- - When a PR is merged, GitHub Releases and changelog are automatically updated
66
- - **npm publish is automated with provenance** for supply chain security
41
+ | Key | Action |
42
+ |-----|--------|
43
+ | `↑` / `↓` / `j` / `k` | Navigate selection |
44
+ | `o` | Launch selected project in Unity |
45
+ | `O` (Shift+O) | Launch Unity + external editor (e.g., Rider) |
46
+ | `i` | Launch external editor only |
47
+ | `q` | Quit Unity for selected project |
48
+ | `r` | Refresh project list |
49
+ | `c` | Copy project path to clipboard |
50
+ | `s` | Open sort settings panel |
51
+ | `v` | Open visibility settings panel |
52
+ | `Ctrl + C` | Exit |
67
53
 
68
- ### Initial Setup Notes
54
+ In settings panels, use `j`/`k` to navigate, `Space` to toggle, and `Esc` to close.
69
55
 
70
- - If existing releases are present, set the latest release commit in `bootstrap-sha` of `release-please-config.json`
71
- - The workflow uses GitHub's `GITHUB_TOKEN` and operates with `contents`/`pull-requests` permissions
56
+ The display includes Git branch (if present), Unity version, project path, and last modified time. By default, the project list uses the Git repository root folder name when available.
72
57
 
73
- ### Manual Execution
58
+ ## CLI Options
74
59
 
75
- You can manually trigger the `release-please` workflow from the Actions tab by selecting `Run workflow`
60
+ - `--no-git-root-name`: Display Unity project titles instead of Git repository root folder names.
76
61
 
77
62
  ## Security
78
63
 
79
- This package implements multiple security measures to protect against supply chain attacks:
80
-
81
- 1. **Automated Publishing with Provenance**: All npm releases are published via GitHub Actions with `--provenance` flag, providing cryptographic proof of the build environment
82
- 2. **Minimal Dependencies**: Only 2 runtime dependencies (`ink` and `react`), both from highly trusted sources
83
- 3. **Locked Dependencies**: `package-lock.json` is committed to ensure reproducible builds
84
- 4. **Regular Security Audits**: Dependencies are regularly checked with `npm audit`
85
-
86
- ### Verifying Package Authenticity
87
-
88
- You can verify the authenticity of published packages:
89
-
90
- ```bash
91
- # Check provenance information
92
- npm view unity-hub-cli --json | jq .dist.attestations
93
-
94
- # Verify package integrity
95
- npm audit signatures
96
- ```
97
-
98
- ## Controls
99
-
100
- - Arrow keys / `j` / `k`: Navigate selection
101
- - `o`: Launch selected project in Unity
102
- - Ctrl + C (twice): Exit
64
+ This project implements supply chain attack prevention measures:
103
65
 
104
- The display includes Git branch (if present), Unity version, project path, and last modified time (`lastModified`).
66
+ - **ignore-scripts**: Disables automatic script execution during `npm install`
67
+ - **Dependabot**: Automated weekly security updates
68
+ - **Security audit CI**: Runs `npm audit` and `lockfile-lint` on every PR
69
+ - **Pinned versions**: All dependencies use exact versions (no `^` or `~`)
105
70
 
106
71
  ## License
107
72
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unity-hub-cli",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "A CLI tool that reads Unity Hub's projects and launches Unity Editor with an interactive TUI",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -36,26 +36,26 @@
36
36
  "dist"
37
37
  ],
38
38
  "dependencies": {
39
- "clipboardy": "^4.0.0",
40
- "ink": "^4.4.1",
41
- "react": "^18.3.1"
39
+ "clipboardy": "4.0.0",
40
+ "ink": "4.4.1",
41
+ "react": "18.3.1"
42
42
  },
43
43
  "engines": {
44
44
  "node": ">=18"
45
45
  },
46
46
  "devDependencies": {
47
- "@types/node": "^20.19.20",
48
- "@types/react": "^18.3.26",
49
- "@typescript-eslint/eslint-plugin": "^7.18.0",
50
- "@typescript-eslint/parser": "^7.18.0",
51
- "eslint": "^8.57.0",
52
- "eslint-config-prettier": "^9.1.2",
53
- "eslint-import-resolver-typescript": "^3.10.1",
54
- "eslint-plugin-import": "^2.32.0",
55
- "prettier": "^3.6.2",
56
- "tsup": "^8.5.0",
57
- "tsx": "^4.20.6",
58
- "typescript": "^5.9.3",
59
- "vitest": "^4.0.14"
47
+ "@types/node": "20.19.20",
48
+ "@types/react": "18.3.26",
49
+ "@typescript-eslint/eslint-plugin": "7.18.0",
50
+ "@typescript-eslint/parser": "7.18.0",
51
+ "eslint": "8.57.0",
52
+ "eslint-config-prettier": "9.1.2",
53
+ "eslint-import-resolver-typescript": "3.10.1",
54
+ "eslint-plugin-import": "2.32.0",
55
+ "prettier": "3.6.2",
56
+ "tsup": "8.5.0",
57
+ "tsx": "4.20.6",
58
+ "typescript": "5.9.3",
59
+ "vitest": "4.0.14"
60
60
  }
61
61
  }