Skip to content

Commit 8ed6a3f

Browse files
committed
chore(macos): add helper scripts and docs
1 parent 4b733e6 commit 8ed6a3f

4 files changed

Lines changed: 51 additions & 2 deletions

File tree

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,15 @@ If the agent cannot run shell commands, use MCP instead: `hack setup mcp` and `h
106106

107107
### macOS app (experimental)
108108
Source lives in `apps/macos`. See `apps/macos/README.md` for XcodeGen and build/run steps.
109+
Quick commands (repo root):
110+
111+
```bash
112+
bun run macos:project-gen
113+
bun run macos:open
114+
bun run macos:dev
115+
bun run macos:build
116+
bun run macos:test
117+
```
109118

110119
### Configuration (.hack/hack.config.json)
111120
- `name`: project slug (also used for Docker Compose project name)

apps/macos/App/Info.plist

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,20 @@
22
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
44
<dict>
5-
<key>CFBundleName</key>
6-
<string>Hack Desktop</string>
5+
<key>CFBundleDevelopmentRegion</key>
6+
<string>$(DEVELOPMENT_LANGUAGE)</string>
77
<key>CFBundleDisplayName</key>
88
<string>Hack Desktop</string>
9+
<key>CFBundleExecutable</key>
10+
<string>$(EXECUTABLE_NAME)</string>
911
<key>CFBundleIdentifier</key>
1012
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13+
<key>CFBundleInfoDictionaryVersion</key>
14+
<string>6.0</string>
15+
<key>CFBundleName</key>
16+
<string>$(PRODUCT_NAME)</string>
17+
<key>CFBundlePackageType</key>
18+
<string>APPL</string>
1119
<key>CFBundleShortVersionString</key>
1220
<string>$(MARKETING_VERSION)</string>
1321
<key>CFBundleVersion</key>

apps/macos/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,23 @@ Native macOS app for managing local hack projects and daemon status.
88
- Xcode 15.1+
99
- XcodeGen (`brew install xcodegen`)
1010

11+
## What it does
12+
13+
- Lists local hack projects with status and details.
14+
- Actions: start/stop project, open URL, open logs (stub).
15+
- Shows hackd status with start/stop controls.
16+
- Menu bar item for quick status + actions.
17+
18+
## Quick commands (repo root)
19+
20+
```bash
21+
bun run macos:project-gen
22+
bun run macos:open
23+
bun run macos:dev
24+
bun run macos:build
25+
bun run macos:test
26+
```
27+
1128
## Generate the Xcode project
1229

1330
```bash
@@ -32,3 +49,13 @@ Open `HackDesktop.xcodeproj` in Xcode and run the app. The app uses the `hack` C
3249

3350
If `hack` is not in PATH for GUI apps, ensure it lives in `/opt/homebrew/bin` or
3451
`/usr/local/bin` (both are added to PATH by the app).
52+
53+
## Data source
54+
55+
The app shells out to `hack` for JSON data (projects + daemon status). It does not
56+
talk to hackd directly yet.
57+
58+
## Logs
59+
60+
The logs view is a stub placeholder for now. It can be wired to `hack logs` or
61+
daemon streaming later.

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"install:bin": "bun run build && bun run scripts/install-cli.ts --mode=bin --force",
1616
"install:status": "bun run scripts/install-status.ts",
1717
"lint": "bun run scripts/lint.ts",
18+
"macos:project-gen": "cd apps/macos && xcodegen -c project.yml",
19+
"macos:open": "open apps/macos/HackDesktop.xcodeproj",
20+
"macos:dev": "bun run macos:project-gen && bun run macos:open",
21+
"macos:build": "cd apps/macos && swift build",
22+
"macos:test": "cd apps/macos && swift test",
1823
"prepare": "husky",
1924
"release:prepare": "bunx semantic-release --no-ci",
2025
"typecheck": "bunx tsc -p tsconfig.json --noEmit",

0 commit comments

Comments
 (0)