Skip to content
Muxen
Docs · GitHub and workspaces

Code and CI

GitHub and workspaces

Your review requests, issues and repositories, the checkouts on your machines, and handing an issue to an agent.

The GitHub page (⌃4) is built for one loop: see what needs you, hand an issue to an agent on one of your machines, and move on. It shows what’s waiting for you, your repositories, and where each one is checked out on your machines.

Sign in

Muxen uses the GitHub CLI’s login. If gh auth status works in your terminal, Muxen is already signed in. If not, Settings › GitHub › Sign in with GitHub runs the CLI’s browser sign-in for you. A GITHUB_TOKEN (or GH_TOKEN) in the environment works too.

Each machine has its own gh login, which agents there use for issues and pull requests. A machine’s page shows whether it’s signed in and can sign it in.

What needs you

The top of the page is your inbox:

  • Waiting for your review: pull requests someone asked you to review.
  • Assigned to you: open issues with your name on them.
  • Your pull requests: the ones you opened that are still open.
The GitHub page: review requests, issues assigned to you and your open pull requests, then the repositories. The GitHub page: review requests, issues assigned to you and your open pull requests, then the repositories.
What needs you first, then your repositories.

Click any of them to read it in full: the description, the comments, and for a pull request its checks and reviews. ⌘⇧R syncs GitHub now.

Repositories

Below the inbox is every repository you own, collaborate on, or reach through your organizations. Open one for its open issues, pull requests and recent GitHub Actions runs.

  • Favorites: star the repositories you work on and they stay at the top. Right-click a repository for Add to favorites.
  • Grouped or not: show one list, or group by owner (you, then your organizations, then repositories other people shared with you).

Checkouts on your machines

Muxen’s agent on each machine looks for git checkouts in your code folders (~/Developer, ~/code, ~/src and the like) and links them to their GitHub repository. A repository’s page lists where it’s checked out, with the branch, how many commits it’s ahead or behind, and any uncommitted files. Fetch, Pull and Push work from there.

To look in other folders, set code_folders under [settings] in config.toml.

Hand an issue to an agent

Every issue has Fix with agent; every pull request has Review with agent. Either opens a new session in that repository’s checkout on the machine you pick (this computer first), with the issue’s link, title and description as the agent’s first message.

When you don’t want the agent touching a checkout you’re using, right-click the issue and pick Fix in a new workspace… (Review in a new workspace… for a pull request). Muxen makes a fresh clone instead:

  1. 01

    Pick an issue

    Right-click it and choose Fix in a new workspace….

  2. 02

    Fresh clone

    On a machine you pick, or a new Linux VM. An issue gets its own branch, like issue-910-content-excalidraw.

  3. 03

    The agent works there

    It starts in the clone with the issue as its first message. Watch it from the sidebar.

  4. 04

    You review

    Read the diff, then push and open the pull request, or have the agent do it.

A pull request checks out its own branch instead, forks included.

See Agent sessions for following the agent once it’s running.

Workspaces

A workspace is a folder on one of your machines, usually a fresh git clone, kept for one task. The ones above are made for an issue; your AI agents make their own to run tests or try a change (with workspace_create, see MCP for your agents). The Workspaces page (⌃3) lists them all.

The Workspaces page: three workspaces, api and web on Beacon and desktop on Forge, each with its repository and branch, the agent that made it, its last command and exit code, and its folder. The Workspaces page: three workspaces, api and web on Beacon and desktop on Forge, each with its repository and branch, the agent that made it, its last command and exit code, and its folder.
Each workspace with its repository and branch, who made it, and the last command run there.
  • Each one shows its machine, repository and branch, which agent made it, its last command with the exit code, and its folder.
  • Click one for its details, with New session (an agent or a shell in its folder), Open in editor, Copy shell command and Changes (its git status and the uncommitted diff).
  • New workspace makes one yourself: a machine, and a repository to clone if you want one. Private repositories clone with your gh login.
  • A workspace runs directly on the machine, with its tools, or in a fresh Docker container of its own (the folder mounted at /workspace), for untrusted code or a clean toolchain.

Workspaces stay until you delete them, with the bin on the page. Push anything worth keeping first.

Git on each machine

For an agent to commit and push on a machine, git there needs a name, an email and a way to reach GitHub. A machine’s page has a Git card that shows all three. When something’s missing, one click fixes it:

  • Use my GitHub identity sets git’s name and email to your GitHub name and your private noreply address.
  • Use the GitHub CLI runs gh auth setup-git, so pushes use that machine’s gh login.

Both change the machine’s global git config, so Muxen only does them when you click.

muxen git status beacon
muxen git setup beacon --identity --credentials

More than one account

Muxen uses one GitHub account at a time. Click your name at the top of the GitHub page to switch. The menu lists every account the GitHub CLI on this computer is signed in to, and each machine’s own gh login. Pick your work laptop’s login and Muxen shows that account’s repositories, inbox and runners; Fix with agent then prefers checkouts on that machine.

A token from another machine is fetched over ssh when needed and kept in memory only. Switching doesn’t change which account gh uses in your terminal. Add another account… runs gh auth login.

Permissions for organizations

Reading your repositories and issues needs only the default gh login. Watching an organization’s runners needs the admin:org permission. Settings › GitHub shows when it’s missing; Grant access runs this in a terminal and finishes in your browser:

gh auth refresh -h github.com -s admin:org

See GitHub Actions runners for what watching gives you.

From the command line

muxen github inbox               # what needs you
muxen github repos               # favorites first
muxen github repo acme/api       # issues, PRs, runs, and where it's checked out
muxen github issue acme/api#632  # or the issue's URL
muxen github favorite acme/api   # --remove to unstar
muxen github accounts
muxen github use work-login      # or: --machine work-macbook
muxen checkouts --repo acme/api
muxen checkouts --machine beacon --path ~/code/api --git pull