Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ jobs:

- run: npm ci

- name: Install rpm tooling for electron-builder
run: sudo apt-get update && sudo apt-get install -y rpm

- name: Build and publish
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ When you're happy with the result, merge the branch back to main from the sideba
- **Canvas per task** — a Markdown file from the worktree rendered live as the agent writes it; edit it in place, or select a passage and send it to the agent with your question
- **Browser preview in the canvas** — run a local app in the task shell, open **+ → Browser**, and pick elements to reference in your prompt ([usage and limits](docs/browser-preview.md))
- **PR CI status watcher** — desktop notification when GitHub checks settle
- **Super Productivity integration** — the task you focus is tracked in Super Productivity (a matching task is created there on first focus, in the Super Productivity project you link in project settings), titles stay in sync, and merging or closing a task marks it done there. A task Super Productivity is already tracking that isn't a Parallel Code task is never replaced — a banner offers to switch instead. Connect in Settings with the token from Super Productivity's Local REST API (Settings → Misc; the API must stay turned on). With Super Productivity's bundled **Parallel Code** plugin enabled, **Start in Parallel Code** on a task opens a pre-filled New Task form here; that link needs the macOS app or the `.deb` (an AppImage only handles it if it was integrated into your desktop).
- **Super Productivity integration** — the task you focus is tracked in Super Productivity (a matching task is created there on first focus, in the Super Productivity project you link in project settings), titles stay in sync, and merging or closing a task marks it done there. A task Super Productivity is already tracking that isn't a Parallel Code task is never replaced — a banner offers to switch instead. Connect in Settings with the token from Super Productivity's Local REST API (Settings → Misc; the API must stay turned on). With Super Productivity's bundled **Parallel Code** plugin enabled, **Start in Parallel Code** on a task opens a pre-filled New Task form here; that link needs the macOS app or the `.deb`/`.rpm` (an AppImage only handles it if it was integrated into your desktop).
- Shell terminals per task, scoped to the worktree
- **Direct mode** for working on the main branch without isolation, plus support for **folders without a git repo**
- **Existing worktree import** — bring already-created worktrees into Parallel Code
Expand Down Expand Up @@ -120,7 +120,7 @@ When you're happy with the result, merge the branch back to main from the sideba

1. **Download** the latest release for your platform from the [releases page](https://github.com/johannesjo/parallel-code/releases/latest):
- **macOS** — `.dmg` (universal)
- **Linux** — `.AppImage` or `.deb`
- **Linux** — `.AppImage`, `.deb` (Debian/Ubuntu: `sudo dpkg -i file.deb`) or `.rpm` (Fedora: `sudo dnf install file.rpm`; openSUSE: `sudo zypper install file.rpm`)

2. **Install at least one AI coding CLI:** [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex CLI](https://github.com/openai/codex), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Antigravity CLI](https://antigravity.google/), or [Copilot CLI](https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli)

Expand Down
57 changes: 47 additions & 10 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,58 @@ case "$OS" in
;;

Linux)
NO_INSTALL=0
if [ "${1:-}" = "--no-install" ]; then
NO_INSTALL=1
fi

echo "Building release for Linux..."
rm -f "$SCRIPT_DIR"/release/*.deb
npm run build
rm -f "$SCRIPT_DIR"/release/*.deb "$SCRIPT_DIR"/release/*.rpm
npm run build:frontend && npm run build:remote && npm run compile && npm run build:mcp

DEB_FILE=$(find "$SCRIPT_DIR/release" -name '*.deb' -type f | head -1)
if command -v dnf >/dev/null 2>&1 || command -v zypper >/dev/null 2>&1; then
npx electron-builder --linux rpm --publish never

if [ -z "$DEB_FILE" ]; then
echo "Error: no .deb found in release/"
exit 1
fi
RPM_FILE=$(find "$SCRIPT_DIR/release" -name '*.rpm' -type f | head -1)

if [ -z "$RPM_FILE" ]; then
echo "Error: no .rpm found in release/"
exit 1
fi

if [ "$NO_INSTALL" = "1" ]; then
echo "Built $RPM_FILE (not installed)."
exit 0
fi

echo "Installing $DEB_FILE..."
sudo dpkg -i "$DEB_FILE"
echo "Installing $RPM_FILE..."
if command -v dnf >/dev/null 2>&1; then
sudo dnf install "$RPM_FILE"
else
sudo zypper install "$RPM_FILE"
fi

echo "Installed successfully via dpkg"
echo "Installed successfully"
else
npx electron-builder --linux AppImage deb --publish never

DEB_FILE=$(find "$SCRIPT_DIR/release" -name '*.deb' -type f | head -1)

if [ -z "$DEB_FILE" ]; then
echo "Error: no .deb found in release/"
exit 1
fi

if [ "$NO_INSTALL" = "1" ]; then
echo "Built $DEB_FILE (not installed)."
exit 0
fi

echo "Installing $DEB_FILE..."
sudo dpkg -i "$DEB_FILE"

echo "Installed successfully via dpkg"
fi
;;

*)
Expand Down
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"name": "parallel-code",
"version": "4.0.0",
"description": "",
"desktopName": "parallel-code.desktop",
"author": {
"name": "Johannes Millan",
"email": "contact@super-productivity.com"
Expand Down Expand Up @@ -174,16 +175,21 @@
"linux": {
"target": [
"AppImage",
"deb"
"deb",
"rpm"
],
"category": "Development",
"syncDesktopName": true,
"desktop": {
"entry": {
"StartupWMClass": "parallel-code",
"StartupNotify": "true"
}
}
},
"rpm": {
"compression": "gzip"
},
"mac": {
"target": [
"dmg",
Expand Down
Loading