Using the workspace
The session menu
Everything you can do to a Duscode session from its menu, with the letter shortcuts. Open a pull request, open the session in VS Code, pin, rename, branch, archive or delete.
Every session has one menu. You can open it in three ways:
- click ⋯ on the session's row in the sidebar
- right-click the row, and the menu opens at the pointer
- click the session's title in the top bar
The open session's row has no ⋯. Right-clicking it opens the top bar's menu, so a session never has two menus open. With the keyboard, focus a row and press the menu key or Shift+F10.
Items and letters
The letter after an item works while the menu is open. It also works while the session's row has focus, without opening the menu.
| Item | Letter | What it does |
|---|---|---|
| Open pull request | G | Opens the session's pull request on GitHub. Shown once it has one. |
| Create pull request… | G | Shown instead when the session's branch has commits and no pull request yet. After you confirm, Duscode pushes the branch and opens a pull request with the GitHub CLI. Commit any uncommitted changes first. |
| Open in › | VS Code, Terminal (the work pane's Terminal tab) or File manager. See Open in. | |
| Pin / Unpin | P | Moves the session to the Pinned group at the top of the list |
| Mark as unread / Mark as read | U | Sets or clears the blue unread dot |
| Rename… | R | Gives the session a new name. Not available for Main. |
| Copy link | C | Copies the session's link (/code?p=…&s=…), which opens it in Duscode on this computer, also after a restart |
| Branch from here | Starts a new isolated session on a new branch from this session's last commit. See Branch from here. | |
| Start preview / Stop preview | Starts or stops the session's dev server. To see the running app, use the Browser button in the top bar. | |
| Archive / Restore | A | Hides the session and keeps its branch and worktree. See Archive or delete. |
| Finish… | Brings the base branch in, runs every check on the merged result, then merges or opens a pull request, and cleans up. See Finishing a session. | |
| Discard… | Removes the worktree and branch without merging, and keeps the record as Discarded | |
| Delete… | D | Removes the session for good, after a confirm |
A finished session whose files are gone shows only Open pull request, Copy link and Delete record….
Main, your own checkout, can't be renamed, archived, finished, discarded or deleted.
Open in
- VS Code opens the session's folder in VS Code. For an isolated session, that's its worktree.
- Terminal opens the Terminal tab in the work pane, with the commands Dus ran in this session.
- File manager opens the folder in Finder on macOS, Explorer on Windows and the default file manager on Linux. Under WSL it opens Windows Explorer at the folder.
Duscode starts the program with the folder as its only argument, never through a shell.
Branch from here
Use it to try another direction without losing this one. Duscode starts a new isolated session on a new branch, based on this session's last commit. The message box is filled in with where this session left off, in one line, so you can add what to do next and send it. Commit any work first, because uncommitted changes aren't carried over.
Archive or delete
Archive hides a session from the list and stops its preview. Its chat, branch and worktree stay. Find it again with the Archived button at the bottom of the session list, and use Restore to bring it back.
Delete… asks you to confirm first. For an isolated session it removes the chat, the worktree and the branch. For a session in your own checkout it removes only the chat. If deleting would lose work, such as uncommitted changes in the worktree or commits that aren't merged or pushed, Duscode tells you what would be lost. It then offers Archive instead or Delete anyway.
Finish… is the way to end a session: it tests the merged result end to end, merges it or opens a pull request, and removes the worktree and branch once that's done. A session with nothing to merge is offered Close session instead. See Finishing a session.
What's saved
Pinned, unread, archived and the pull request link are saved with the session in .duscode/sessions/<id>.json, so they survive a restart.