{"id":10610558,"url":"https://github.com/coderabbitai/dotfiles","last_synced_at":"2026-03-06T15:28:06.199Z","repository":{"id":65000057,"uuid":"491988670","full_name":"coderabbitai/dotfiles","owner":"coderabbitai","description":"A modern Zsh/tmux, Vim and Homebrew centric setup for macOS and Linux","archived":false,"fork":false,"pushed_at":"2026-03-01T23:31:36.000Z","size":6618,"stargazers_count":136,"open_issues_count":0,"forks_count":16,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-02T01:59:54.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coderabbitai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-13T17:39:44.000Z","updated_at":"2026-03-02T00:23:52.000Z","dependencies_parsed_at":"2023-01-13T15:11:44.585Z","dependency_job_id":"679f7b6e-a010-401e-acb6-737cc4eefbf4","html_url":"https://github.com/coderabbitai/dotfiles","commit_stats":null,"previous_names":["coderabbitai/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coderabbitai/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderabbitai%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderabbitai%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderabbitai%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderabbitai%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coderabbitai","download_url":"https://codeload.github.com/coderabbitai/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderabbitai%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30183199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-06-02T09:43:30.263Z","updated_at":"2026-03-06T15:28:06.154Z","avatar_url":"https://github.com/coderabbitai.png","language":"Shell","funding_links":[],"categories":["others","Shell"],"sub_categories":[],"readme":"# CodeRabbit Dotfiles\n\n![CodeRabbit Neovim](./sw/assets/vim.png)\n\n## Introduction\n\nWelcome to CodeRabbit optimized development environment that is well integrated\nwith our stack.\n\n## Setup\n\nWe use [chezmoi](https://www.chezmoi.io) to manage CodeRabbit dotfiles in your\nhome directory.\n\n### Automatic Setup\n\n```\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/coderabbitai/dotfiles/master/sw/assets/executable_install.sh)\"\n```\n\n### Manual Setup\n\n```\ncd $HOME\nchezmoi init git@github.com:coderabbitai/dotfiles.git\n# show diff of changes that will be made\nchezmoi diff\n# If you are happy with the changes, apply away!\nchezmoi apply -v\n```\n\nPlease close and reopen the terminal to trigger first time install/updates.\n\nRecommend using `GitHub CLI` for authenticating with GitHub. Run\n`gh auth login`. Alternatively, add\n[SSH key to your GitHub account](https://docs.github.com/en/authentication/connecting-to-github-with-ssh).\n\n## Git setup\n\n### Username and local settings\n\nProvide username and email address by creating `.gitconfig_local` e.g.\n\n```\n[user]\n  name = Harjot Gill\n  email = harjot@coderabbit.ai\n[github]\n   user = \u003cgithub user name\u003e\n   token = \u003cpersonal access token\u003e\n```\n\nYou can generate\n[personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)\nfor GitHub to use HTTP API. Also, it's useful to add this token to your\n`$HOME/.netrc` file. Run -\n`echo 'machine api.github.com login \u003cuser\u003e password \u003ctoken\u003e' \u003e\u003e $HOME/.netrc`\n\n### GitHub org cloning script\n\nTo clone CodeRabbit, run: `gh_clone_all.sh coderabbitai $HOME/work`. This step\nis performed automatically on installation.\n\n### Git pull all repos script\n\nTo update all repos in a directory, run: `pull_all.sh $HOME/work/coderabbitai`.\nThis step is performed automatically on auto-updates.\n\n## Preparing your terminal\n\n- **Nerd fonts**: Please enable a nerd font such as `Hack Nerd Font` in your\n  terminal profile to see icons properly when using `nvim` in terminal mode.\n- **Terminal colors**: See the section about [colors](#colors).\n\n## Homebrew\n\nHomebrew is the default package manager for this environment. You can provide\nprivate packages by adding them to: `$HOME/.brew_local`\n\n## Autoupdates\n\nThis environment is set to autoupdate every 7 days by default. You can trigger\nautoupdates manually by calling `autoupdate.zsh --force` You can provide custom\nautoupdate commands by adding them to: `$HOME/.autoupdate_local.zsh`\n\n## zshrc\n\nYou can provide additional zshrc settings by adding them to:\n`$HOME/.zshrc_local`\n\n![zsh](./sw/assets/zsh.png)\n\n### Features\n\n- Fuzzy menus: Fuzzy menus are available for command completion (press `TAB`)\n  menus and command history (press `^r`).\n- Vi mode: Press `ESC` to enter Vi `NORMAL` mode. Cool tip - while in normal\n  mode, press `vv` to switch to visual mode (it will open `nvim` editor) and in\n  that mode you can use GitHub Copilot to build sophisticated commands using AI!\n- Prompt flags: Type `yazpt_explain_git` to understand the meaning of various\n  flags in the prompt.\n- Forgit: You can use `forgit` as an interactive frontend for various git\n  commands. E.g. try `git forgit log`.\n- iTerm2 integration: On macOS, please install iTerm2 shell\n  [integration](https://iterm2.com/documentation-shell-integration.html) to use\n  nice features such as navigating marks in prompt.\n\n## tmux\n\n![tmux Menu](./sw/assets/tmux-menu.png)\n![tmux Fuzzy Menu](./sw/assets/tmux-fzf.png)\n\n`tmux` sessions are automatically started as part of `.zshrc` execution. You\nwill be shown an option to join an existing detached session if they exist,\notherwise a new session will be created and attached to.\n\n### Features\n\n- Prefix: `C-a` or `C-b`\n- Fuzzy menu: Press `C-a C-Space` to access fuzzy menu for quick tmux management\n  and shortcuts to various commands.\n- tmux menu: Press `F12` to access tmux session/window/pane management menu.\n- Nested tmux sessions (e.g. remote ssh): Press `F1` to suspend/unsuspend local\n  tmux.\n- [Smug](https://github.com/ivaaaan/smug): Define and orchestrate tmux sessions\n  with smug. e.g. use smug to start/stop local dev Kubernetes cluster and so on.\n- Fuzzy search tmux terminal buffer: Press `C-a C-/`\n- Vi bindings are enabled in tmux copy mode\n- Facebook PathPicker: Press `C-a C-P` to select any line from scrollback buffer\n  (e.g. git status) and use those in another command.\n- Urlview: Press `C-a C-U` to select any url in scrollback buffer and open in\n  browser.\n\n## Neovim\n\nThis environment is highly tuned towards providing a modern neovim/vim setup for\ndevelopment using modern languages such as Golang, Typescript etc.\n\n![Fuzzy Menu](./sw/assets/fuzzymenu.png)\n\n![IDE](./sw/assets/vim_ide.png)\n\n### vimrc\n\nYou can provide additional `vimrc` settings by adding them to:\n`$HOME/.vimrc_local`. You can also use **FuzzyMenu** (`\u003cspace\u003e\u003cspace\u003e`) to tweak\nand persist local settings. In addition, you can provide additional vim plugins\nby adding them to `$HOME/.vimrc_plugins`.\n\nSeveral `colorschemes` are bundled and `gruvbox` is chosen by default. You can\noverride `colorscheme` by providing `let colorscheme = \u003ccolorscheme\u003e` in your\n`.vimrc_local` file.\n\nSee `.vimrc` file for available `colorschemes`. Also see\n`~/.config/nvim/init.vim` for Neovim specific settings.\n\n### Discoverability of commands and plugins\n\n- Landing page for new tabs contains several useful links that help with\n  discoverability.\n- Press `\u003cspace\u003e\u003cspace\u003e` (double space) or `Shift + LeftMouse` click to open a\n  contextual FuzzyMenu for the word under cursor or selection.\n\n### AI-based autocompletion\n\n- GitHub Copilot - Type `:Copilot setup` in Neovim to set up.\n- CodeGPT - Just highlight the code and press `\u003cspace\u003e\u003cspace\u003e` to see CodeGPT\n  options in the FuzzyMenu. You must provide `OPENAI_API_KEY` environment\n  variable in your `.zshrc_local` to use this feature.\n\n### LanguageTool\n\nIf you have LanguageTool Premium, you can provide `LANGTOOL_HTTP_URI`,\n`LANGTOOL_USERNAME` and `LANGTOOL_API_KEY` environment variables to use the\nlanguage server in Neovim.\n\n## Colors\n\nUnlike `nvim` which allows setting themes easily via `.vimrc_local`, color\nthemes for terminal interface are spread across multiple settings.\n\n- **Terminal theme** -\n  - macOS: For iTerm2, the option will be provided to install bundled profile\n    that contains font/color settings. If you do not wish to install the\n    profile, then the colors will be set via terminal escape codes unless\n    `SET_TERMINAL_COLORS` is set to `false` in your `.zshrc_local`.\n  - Linux: Colors will be set automatically using terminal escape codes unless\n    `SET_TERMINAL_COLORS` is set to `false` in your `.zshrc_local`.\n    Alternatively, you can install default color profile using\n    `$HOME/sw/assets/install_gruvbox.sh`. Make sure to set `SET_TERMINAL_COLORS`\n    to `false` in your `.zshrc_local` if you would like to use terminal's color\n    profiles.\n- tmux theme - See `.tmux.conf.settings` for example configuration and override\n  it in your personal `.tmux.conf_local` file. The tmux theme configures the\n  tmux status line and not the terminal itself.\n- bat theme (cat replacement) - Environment variable `BAT_THEME` sets the theme.\n  See `bat --list-themes` to get the list. You can override this theme in your\n  `.zshrc_local` file. Bat is used extensively for fzf previews, git pager\n  (delta), less command filter and so on.\n- FZF colors - Get and source color schemes from\n  [base16-fzf](https://github.com/fnune/base16-fzf) in your\n  `$HOME/.zshrc_local`.\n- LS_COLORS - We use [vivid](https://github.com/sharkdp/vivid) to set the\n  themes. Run `vivid themes` to get the list. You can override this theme in\n  your `.zshrc_local` file.\n- Git pager - See `.gitconfig_themes` to see the available themes. You can\n  override them in your local `.gitconfig_local`.\n- Fast Syntax Highlighting (zsh) - You can run `fast-theme -l` to get the list.\n  To set the theme, first, override `FAST_WORK_DIR` environment variable in your\n  `.zshrc` and point it to `$HOME/.config/fsh_local`. Next, run\n  `fast-theme \u003ctheme\u003e` to switch the theme.\n\nNote: Currently all these settings are configured to match `gruvbox-dark` color\npalette. But it's pretty easy to override them to match `onedark` or\n[Nord](https://www.nordtheme.com)\n\nBonus:\n\n- Slack Gruvbox - Paste this in your DM to Slackbot and click the\n  `Switch sidebar theme` button.\n  ` gruvbox dark #282828,#3c3836,#ebdbb2,#1d2021,#3e313c,#ebdbb2,#689d6a,#fb4934`\n\n## Managing `*_local` override files\n\nYou can use [vcsh](https://github.com/RichiH/vcsh) utility to version local\nfiles and sync them across machines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderabbitai%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderabbitai%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderabbitai%2Fdotfiles/lists"}