guito
v1.0.9
Published
Easily explore your git repositories.
Maintainers
Readme
Guito
Explore and manage Git repositories in a focused visual client. Guito runs locally in your browser or directly inside Visual Studio Code.
The name combines GUI and Git: GuITo. It is also a Portuguese word for money.
npm package · VS Code extension · Open VSX extension · Issue tracker
Features
- Visual commit graph with branch and tag references.
- Stashes listed in the commit table with apply, pop, and drop actions.
- Commit search by subject, body, author, or hash, with loading feedback and retries.
- Local and remote branch filtering.
- Commit and working-tree diffs powered by the Monaco editor, with inline and side-by-side layouts.
- Fetch, pull, pull with rebase, push, and sync actions.
- Context actions for creating branches and tags, checking out commits, cherry-picking, reverting, merging, rebasing, resetting, and exporting archives.
- Working-tree actions for stashing changes, resetting tracked changes, and cleaning untracked files.
- Stage and unstage files with multi-selection, preview staged and unstaged diffs, and commit staged changes.
- Review your active Azure DevOps pull requests from the repository side panel: edit details, manage reviewers and votes, complete or auto-complete, discuss comment threads, and add inline comments on file diffs.
- Have pull requests reviewed for you by Claude Code, re-reviewed on every new commit, with the comments queued for your approval before anything is posted.
- Browser-based CLI and a VS Code extension with local, Remote SSH, Dev Container, and Codespaces support.
[!CAUTION] Guito can run destructive Git operations, including hard resets, commit drops, forceful cleanup, and history changes. Review confirmation dialogs carefully and make sure important work is committed or backed up.
Quick start
Browser client
You need Git, Node.js 20 or newer, and npm. From inside the repository you want to inspect, run:
npx guitoGuito starts a local server at http://localhost:8080 and opens it in your default browser.
To install the command globally instead:
npm install --global guito
guitoVisual Studio Code
After installing the extension, open a trusted workspace containing a Git repository, then either:
- select Guito in the status bar; or
- run Guito: Open Guito from the Command Palette.
In a multi-root workspace, Guito asks which repository to open. Git must be available on the local or remote VS Code extension host.
Stage and commit changes
Click Uncommitted changes to open the staged and unstaged file lists. Click to select a file, Ctrl/Cmd-click to toggle individual files, or Shift-click to select a range. Use the per-file buttons, selected-file actions, or Stage all / Unstage all. The separate Diff button previews only the changes in that list.
Enter a commit message and optional description, then choose Commit staged changes. Only staged changes are committed; unstaged edits remain on disk. Commit drafts stay available when you close and reopen the panel during the session.
Generate message drafts a subject and description with Claude Code running on your machine, from the staged diff when anything is staged and from every uncommitted change otherwise, matching the language and style of your recent commits. The draft fills the boxes for you to review and edit; nothing is committed automatically. The Commit message model setting picks the model, and Commit message style picks how much it writes: Oneliner (the default) drafts only the subject line, Brief adds a short description, and Descriptive explains the change in full. In the VS Code extension, the same button is also in the Source Control view's title bar, and it fills the Git commit message box.
CLI options
guito [--port <number>] [--no-open]| Option | Description |
| ----------------- | ----------------------------------------------------------------------------------------------------- |
| --port <number> | Port used by the local server. Defaults to 8080; use 0 to select an available port automatically. |
| --no-open | Start the server without opening a browser. |
Run the command from anywhere inside the Git worktree you want Guito to manage. Press Ctrl+C in the terminal to stop the server.
Using Guito
- Select a commit to inspect its changed files, then select a file to open its diff.
- Select Uncommitted changes to inspect the working tree.
- Use the branch selector and remote-branch toggle to narrow the graph.
- Right-click a commit, reference badge, or the working-tree row to open its available Git actions.
- Use the toolbar for remote operations and manual refreshes.
The standalone server can execute Git commands against the current repository. Keep it on a trusted machine and do not expose its port to untrusted networks.
Settings
Inside the VS Code extension, every preference below is a native VS Code setting in the guito namespace: open the Settings editor and search for "Guito". In the browser client, the same preferences live in the settings dialog behind the toolbar's gear icon and are stored per repository in .git/guito-settings.json, which is never committed. VS Code settings win over the stored file when both are set.
The settings dialog also manages preferences that have no VS Code equivalent: the repository's Git user name and email, the fetch and push URLs of the configured remotes, and issue-linking rules. An issue-linking rule (a regular expression plus a URL template) turns issue references in commit messages into links; it can be saved for the repository or globally, and global rules are stored in your Git configuration as guito.issueRegex and guito.issueUrl.
General
| Setting | Description |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| guito.autoReload | Reload commits and the working tree automatically when the repository changes outside Guito, for example from a terminal. On by default. |
| guito.showGraph | Show the Git graph beside the commit history. On by default. |
| guito.showStashes | Show stash entries above the commit history. Off by default. |
| guito.showTags | Show tag badges attached to commits. On by default. |
| guito.showRemoteBranches | Show remote branches in the repository panel and the branch pills on commits. On by default. |
| guito.fileListView | How changed-file lists are shown: flat (default) lists every file with its full path, tree groups them into collapsible folders. |
| guito.refListView | How branches and tags are shown in the repository panel: flat (default) lists full names, tree groups them into collapsible namespace folders. |
| guito.sidePanelSectionsExpanded| Open the repository panel with all sections expanded. On by default. |
| guito.searchMode | How commit search behaves: navigate (default) keeps the full history and jumps between matches, filter shows only matching commits. |
| guito.searchCaseSensitive | Match commit and repository panel searches using the query's exact letter casing and accents. Off by default. |
| guito.diffViewer | Where file diffs open: vscode (default) uses the native VS Code diff tab, guito uses Guito's own dialog. Binary files always use Guito's dialog. |
| guito.issueRegex | Regular expression that recognizes issue references in commit messages, for example #(\d+). Inside the extension this is the issue-linking rule; it wins over the rule saved in the settings dialog. |
| guito.issueUrl | URL template for issue links; capture groups from the issue regex are inserted with $1, $2, and so on. |
Azure DevOps
| Setting | Description |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| guito.azureDevOpsUrl | Base URL of your on-prem Azure DevOps Server, for example https://server/DefaultCollection. Enables pull request creation and the automated reviewer; requests authenticate with Windows integrated auth. |
| guito.prBranchNameTemplate | Branch name template used when Guito creates a new branch for a pull request. Defaults to pr/${randomstring}. Variables: ${username}, ${randomstring}, ${branch}, ${targetbranch}, ${title}, ${repository}, ${date} (UTC YYYY-MM-DD), ${time} (UTC HHmmss), and ${timestamp}. |
| guito.allowMerge | Offer the "No fast-forward (merge commit)" and "Semi-linear merge" pull request completion strategies. On by default. |
The guito.aiReview.* settings that configure the automated pull request reviewer are listed under Automated pull request review.
Automated pull request review
Guito can hand your Azure DevOps pull requests to Claude Code running on your own machine, then queue what it finds for you to approve.
Turn it on in Settings (gear icon), or with guito.aiReview.enabled in VS Code. Claude Code must be installed and signed in; no API key is configured in Guito, and no code leaves your machine except to the model Claude Code is already signed in to. Guito finds the CLI on PATH, in the standard install locations, and in the Claude Code VS Code extension's own bundled copy; set guito.aiReview.claudePath if yours lives somewhere else.
How it works:
- Guito checks Azure DevOps every few minutes for the pull requests in scope — by default the active ones that list you as a reviewer.
- Each pull request is reviewed once per merge source commit. When the author pushes, only the files that commit touched are reviewed again, and Claude is told what it already raised so it does not repeat itself.
- Findings land in the pull request dialog's Review tab, each with a severity, the file and line it is about, and the comment it would post. Tick the ones you want and choose Post to pull request; they become ordinary Azure DevOps comment threads from your account.
- Dismiss removes a finding and stops it being raised again for that pull request.
- Nothing is posted, and no vote is cast, without you clicking.
Inside VS Code the reviewer also runs while no Guito panel is open, so pull requests are reviewed as you work; run Guito: Review Pull Requests Now from the Command Palette to check immediately. Reviews are stored per repository in .git/guito-ai-reviews.json and are never committed.
| Setting | Description |
| -------------------------------- | ---------------------------------------------------------------------------------------- |
| guito.aiReview.enabled | Turns automated review on. Off by default. |
| guito.aiReview.scope | reviewer (default), mine, or all. |
| guito.aiReview.pollMinutes | Minutes between checks. Defaults to 30. |
| guito.aiReview.includeDrafts | Also review draft pull requests. Off by default. |
| guito.aiReview.claudePath | Path to the Claude Code executable. Empty means Guito looks for it (see above). |
| guito.aiReview.model | Which Claude model reviews pull requests. Defaults to opus. |
| guito.aiReview.commitMessageModel | Which Claude model drafts commit messages. Defaults to haiku. |
| guito.aiReview.effort | Claude Code effort level for reviews (low to max). Defaults to high; empty uses Claude Code's default. |
| guito.aiReview.commitMessageEffort | Claude Code effort level for commit messages. Defaults to low; empty uses Claude Code's default. |
| guito.aiReview.commitMessageStyle | oneliner (default), brief, or descriptive. |
| guito.aiReview.timeoutSeconds | How long one review may take. Defaults to 600. |
| guito.aiReview.instructions | Extra reviewing instructions, such as your team's conventions. |
Development and contributing
See CONTRIBUTION.md for local setup, development commands, project structure, testing, and pull-request guidance.
Release history is maintained in CHANGELOG.md.
License
Guito is available under the MIT License.
