adobe / adobe/aem-desktop

Add "Open in…" dropdown for selected item (Finder, Terminal, VS Code, Cursor, Claude Desktop, ChatGPT, Codex, copy path)

Open
#3 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
JavaScript
Stars
2
Forks
3
Avg merge
15m
Merged PRs (30d)
6

Description

## Summary

Add an **"Open in…"** dropdown to the content browser for the selected item, offering quick handoff to external tools:

- **Finder** — reveal the synced file/folder
- **Terminal** — open at the item's local directory
- **VS Code** — open the file/folder
- **Cursor** — open the file/folder
- **Claude Desktop**
- **ChatGPT**
- **Codex**
- **Copy path** — copy the path to the clipboard

## Why

Once an item is selected (and synced locally), the natural next step is often to open it somewhere else — edit it in an editor, poke at it in a terminal, or hand it to an AI tool. Today there's no path out of the app; you have to find the synced folder manually.

## Suggested placement

Alongside the existing actions in the file-tree panel header (`renderPanelHeader` in `src/renderer/file-tree.js`, next to **Sync selected…** / **Review changes…**), driven by `state.tree.selectedPaths`. A single split/dropdown button keeps the header uncluttered.

## Implementation notes / open questions

- **Local-path dependency:** Finder, Terminal, VS Code, Cursor, and Codex all need a local filesystem path, which only exists *after* the item has been synced. We'll need to map the selected DA path → local path (via the sync-folder store) and either disable those targets or trigger a sync first when no local copy exists. **Copy path** could offer either the DA path or the local path.
- **App detection:** only show targets for apps that are actually installed (e.g. probe known bundle IDs / app paths on macOS) rather than listing everything.
- **Launch mechanism:** Finder/Terminal via `shell.openPath` / `open`; editors via their CLI (`code`, `cursor`) or bundle ID; AI tools via their URL scheme or app handoff (needs investigation per app).
- macOS-first is fine given the app is Apple-Silicon-only today.

## Acceptance criteria

- [ ] "Open in…" control appears when an item is selected
- [ ] Targets that require a local file are disabled (or trigger a sync) when the item isn't synced
- [ ] Only installed apps are listed
- [ ] "Copy path" copies a sensible path to the clipboard

Contributor guide

Open the contributing guide

Research direction

Start in src/renderer/file-tree.js at renderPanelHeader and trace state.tree.selectedPaths, then inspect the sync-folder store for DA-to-local path mapping. Define the app-detection and launch behavior for each target before implementing the dropdown; done means the control appears for selected items, handles unsynced paths, lists installed apps, and copies a sensible path.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.