Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>TwiglineNew to Visual Studio Code? Get it now.
Twigline

Twigline

Ryota Abe

| (0) | Free
A Git client inside VS Code: branches, commit graph, file status with line staging and diffs in one panel.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Twigline

A Git client inside VS Code: branches, the commit graph, file status with line-level staging, and diffs in one panel.

日本語

  • Opens each repository in its own editor tab with "Uncommitted Changes | History" tabs, the history graph with branch lists, and details / diffs side by side
  • Actions sit where they apply: pull, push, merge and rebase for the current branch on the branch name in the tab row (clicking the ahead / behind counts also pushes / pulls); stash and discard inside the "Uncommitted Changes" tab; fetch, push branches, branch, tag and settings under "…" at the right end of the tab row
  • Stage / unstage / discard by file, hunk or line in the "Uncommitted Changes" tab
  • Right-click opens VS Code's own context menu
  • Actions with options open a dialog that previews the git command to be run
  • English and Japanese UI; Japanese file names and Shift_JIS / EUC-JP files
  • Syntax highlighting in diffs, using the grammars installed in VS Code and the colors of the current color theme

Installation

  • VS Code: search for "Twigline" in the Extensions view (VS Code Marketplace)
  • Cursor and other VS Code-compatible editors: search for "Twigline" in the Extensions view (Open VSX Registry)

Requirements

  • VS Code 1.95 or later, or Cursor based on VS Code 1.95 or later
  • Git (Twigline uses the git that VS Code's built-in Git extension uses; set twigline.gitPath to use a different one)
  • A trusted workspace (Twigline does not run in Restricted Mode or in virtual workspaces)

Usage

Where How
Command Palette Twigline: Open Repository in Twigline (twigline.open)
Source Control view title The Twigline icon
Activity Bar "Twigline" → Repositories
Status Bar Click main ↑1 ↓2
Right-click in the Explorer or on an editor tab "File History"

Keys in the panel: Ctrl+Shift+1 / 2 (Uncommitted Changes / History), Ctrl+F (search history), Ctrl+Shift+R (refresh), Ctrl+Enter (commit), ↑ ↓ PageUp PageDown Home End in lists, Space on the selected row of the file list or diff (toggle staging), Shift+F10 (context menu). Fetch / pull / push are available as commands, so you can bind them to keys of your choice.

When the panel opens, it shows the "Uncommitted Changes" tab if there are uncommitted changes, and the "History" tab otherwise. History has a single search box; a prefix selects the kind of search.

Input Result
login Search commit messages
author:alice Search by author
content:validate( Search changes (git log -G)
path:src/auth History of that path (with the graph)
a1c93e0 (7 or more hex digits) / sha:feature/login Go to that commit

The filter button next to the search box chooses which branches, remote branches and stashes to show. The order is set with twigline.history.order.

File history has a "Follow renames" toggle. When on, history continues past renames and commits are drawn as dots only; when off, the graph lines are drawn.

Pull requests

If the remote is on GitHub (including GitHub Enterprise Server) or Bitbucket Cloud (bitbucket.org), pull requests for branches are shown with a #12 badge (in the branch and remote branch lists, on branch badges in history and details, on the current branch in the tab row, and in the list of the Delete Branch dialog). Click the badge, or "Open Pull Request" in a branch's context menu, to open it in the browser. "Create Pull Request" is not offered for branches with an open pull request.

Badge State
Green / git-pull-request Open
Gray / git-pull-request-draft Draft
Purple / git-merge Merged (branch name dimmed)
Red / git-pull-request-closed Closed without merging (including declined or superseded on Bitbucket; branch name dimmed)
  • Local branches are matched by the name of their upstream branch (merged pull requests are still shown after the upstream branch is deleted on the remote). If several pull requests share a branch name, an open one wins, otherwise the most recently updated one. Pull requests from forks are told apart by the remote's owner.
  • Public repositories are read without signing in (from the most recently updated pull requests: 100 on GitHub, 50 on Bitbucket; both limited to 60 requests per hour).
  • For a private GitHub repository, click "Sign in to GitHub to show pull requests" at the end of the branch list and sign in with your GitHub account in VS Code (scope repo). Once signed in, older pull requests of local branches are also found by name. For GitHub Enterprise Server, set github-enterprise.uri to the server URL.
  • For a private Bitbucket repository, click "Connect to Bitbucket to show pull requests" and enter your Atlassian account email and an API token (scope read:pullrequest:bitbucket). The token is stored in VS Code's secret storage, and older pull requests of local branches are also found by name. Remove the saved token with the command Twigline: Disconnect from Bitbucket (Remove Saved API Token). Bitbucket Data Center (self-hosted) is not supported.
  • Results are reused for a while (30 seconds when signed in, 2 minutes otherwise) and re-read after fetch / push, when you return to the panel, and every 3 minutes while it is visible. Ctrl+Shift+R (refresh) re-reads them immediately.
  • To turn this off, disable twigline.pullRequests.enabled (Twigline then stops querying GitHub and Bitbucket).

Contributing

See CONTRIBUTING.md for how to build, test and release.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft