Skip to content

feat(install): one-line installers for non-developers#75

Merged
UmarFarooq75 merged 1 commit into
devfrom
feat/installer
May 7, 2026
Merged

feat(install): one-line installers for non-developers#75
UmarFarooq75 merged 1 commit into
devfrom
feat/installer

Conversation

@UmarFarooq75
Copy link
Copy Markdown
Collaborator

Summary

Two install scripts so a non-technical user can go from copy-paste-a-command to a running Daemora dashboard with no follow-ups.

  • scripts/install.sh (macOS + Linux): detects Node 22+, installs via Homebrew (macOS) or apt/dnf/pacman (Linux) if missing, runs npm install -g daemora, creates /Applications/Daemora.app on macOS or ~/.local/share/applications/daemora.desktop on Linux, and launches the agent. Launcher waits for the HTTP port before opening the browser.
  • scripts/install.ps1 (Windows): same flow via winget. Creates Desktop + Start Menu shortcuts pointing at a launcher .bat that hides its console window.

First run uses daemora start, which already runs the existing setup wizard if config isn't done. Subsequent runs detect the running port and just open the browser. Default port 8081, override with DAEMORA_PORT.

README updated with the one-liners under a new One-line install (recommended for non-developers) section above the existing npm path. The npm path stays for developers.

How users run it

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/CodeAndCanvasLabs/Daemora/main/scripts/install.sh | bash

Windows (PowerShell)

irm https://raw.githubusercontent.com/CodeAndCanvasLabs/Daemora/main/scripts/install.ps1 | iex

Test plan

  • bash -n scripts/install.sh — syntax clean
  • macOS: clean machine without Node — run curl … | bash, confirm Homebrew + Node install, confirm Daemora.app appears in /Applications, confirm browser opens to localhost:8081, confirm second click on the app icon reuses the running server
  • macOS: machine with Node 22+ already installed — confirm Node step is skipped
  • Linux (Ubuntu/Debian): clean machine — confirm apt install path, .desktop entry shows in app launcher
  • Linux (Fedora): confirm dnf path
  • Linux (Arch): confirm pacman path
  • Windows: clean machine — irm … | iex from PowerShell, confirm winget installs Node, confirm Desktop + Start Menu shortcuts created, confirm browser opens
  • First-launch wizard renders correctly on each platform
  • Subsequent launches skip the wizard and load the dashboard directly

Two install scripts that download Node, install daemora globally, and
create a desktop shortcut so non-technical users can get from "click
this command" to a running dashboard with no follow-up steps.

- scripts/install.sh — macOS + Linux. Detects Node 22+, installs via
  Homebrew (macOS) or apt/dnf/pacman (Linux) if missing. npm install -g
  daemora. Creates /Applications/Daemora.app on macOS, ~/.local/share/
  applications/daemora.desktop on Linux. Launcher waits for the HTTP
  port before opening the browser.
- scripts/install.ps1 — Windows. Same flow via winget. Creates Desktop
  + Start Menu .lnk shortcuts pointing at a launcher .bat that hides
  its console window.

First run hits `daemora start`, which already runs the setup wizard if
config isn't done. Subsequent runs detect the running port and just
open the browser. Default port 8081, override with DAEMORA_PORT.

README updated with the curl | bash and irm | iex one-liners under a
new "One-line install (recommended for non-developers)" section above
the existing npm path, which stays for developers.
@UmarFarooq75 UmarFarooq75 merged commit e59a355 into dev May 7, 2026
UmarFarooq75 added a commit that referenced this pull request May 7, 2026
…ripts (#78)

## Summary
Brings in proper native installers for macOS and Windows — replacing the
curl-pipe scripts I added in #75.

**macOS** (\`installer/macos/\`):
- Pre-built \`Daemora.app\` template with a real 309 KB \`.icns\` icon
- Companion \`Stop Daemora.app\`
- \`build-pkg.sh\` produces a signed \`.pkg\` installer
- \`preinstall\` / \`postinstall\` scripts handle the installation
properly
- Native \"open the .pkg, click Continue, done\" experience

**Windows** (\`installer/windows/\`):
- Inno Setup script (\`daemora.iss\`)
- Pre-built \`DaemoraSetup.exe\` (2 MB)
- \`launcher.ps1\` with the right launcher behavior
- Real \`.ico\` icon

**Tooling:** \`scripts/build-installer-icons.mjs\` programmatically
generates platform icons from source — no manual icon babysitting.

## Why this over the curl-pipe scripts
- Real native UX (no terminal commands, no \`curl | bash\`)
- No sudo-in-non-TTY problems, no \`Daemora.app\` creation failing
silently
- Real signed installer bits → no Gatekeeper friction
- Icon, code-signing, version metadata all baked in
- Win10/11 native experience via Inno Setup

## Action item after merge
Delete the now-redundant curl-pipe scripts on \`dev\`:
- \`scripts/install.sh\` (added in PR #75 + my fixes \`1cf856f\` and
\`f61032a\`)
- \`scripts/install.ps1\` (added in PR #75)

The installers branch was based on \`main\` (before #75 merged into
dev), so those files won't conflict — they'll just remain after the
merge. A follow-up commit deletes them.

## Test plan
- [ ] macOS: open the generated \`.pkg\`, complete the wizard, confirm
\`Daemora.app\` lands in /Applications with the icon, double-click
launches the dashboard
- [ ] Windows: run \`DaemoraSetup.exe\`, complete the wizard, confirm
Start Menu + Desktop shortcuts with icon, double-click launches
dashboard
- [ ] Stop \`Daemora.app\` (macOS) cleanly stops the running agent
- [ ] Uninstaller cleanly removes the app on both platforms
UmarFarooq75 added a commit that referenced this pull request May 7, 2026
## Summary
Promotes the installer + safety changes from \`dev\` to \`main\`.

What lands:

- **PR #78** \`feat(install): native installers (.pkg + .exe)\` — proper
macOS \`.pkg\` builder + Windows Inno Setup \`.exe\` with real icons.
Replaces the curl-pipe scripts as the recommended path for non-technical
users.
- **PR #77** \`feat(mcp): disable Playwright MCP by default\` — browser
tools become opt-in. Main agent and browser-pilot crew don't see
\`browser_*\` tools until the user enables Playwright in MCP settings.
- **PR #75** + follow-up fixes \`1cf856f\` and \`f61032a\` — the
original curl-pipe scripts plus the two patches I pushed during testing
(osascript GUI password prompt for non-TTY sudo; Unicode ellipses
replaced with ASCII so \`set -u\` doesn't choke).

After merge, the README's
\`raw.githubusercontent.com/.../main/scripts/install.sh\` URL resolves
and the legacy curl-pipe path keeps working alongside the new native
installers. Future cleanup (deleting the curl-pipe scripts since the
native installers are the recommended path) can be a follow-up commit.

## Test plan
- [ ] After merge, build the macOS \`.pkg\` from
\`installer/macos/build-pkg.sh\`, run on a clean Mac, confirm app
installs and dashboard opens
- [ ] Run \`installer/windows/Output/DaemoraSetup.exe\` on a clean
Windows box, confirm same
- [ ] Confirm browser tools are absent from main agent's tool list on a
fresh install (PR #77 default)
- [ ] Verify
\`https://raw.githubusercontent.com/CodeAndCanvasLabs/Daemora/main/scripts/install.sh\`
resolves
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant