//repojetbyarashsheyda

repojet

Search repositories across multiple GitHub organizations with custom aliases, bookmarks, and quick clone support 🚀

1
0
1
TypeScript

RepoJet

Search repositories across multiple GitHub organizations directly from Raycast.

Screenshots

RepoJet Icon
RepoJet
Raycast Commands
Finding the extension
Welcome Page
Initial setup
Welcome Setup Page
Configuration
Repository List
Repository list
Search Results
Search results
Bookmarked Repositories
Bookmarked repos
Repository Actions
Actions menu
Clone Repository
Clone success
Invalid Token Page
Invalid token
No Results
No results
Error Page
Error state

Features

  • undefinedSearch repositories across multiple GitHub organizations
  • undefinedRecently opened repositories - quick access to repos you’ve recently viewed or cloned, with ability to remove items
  • undefinedBookmark repositories to keep them at the top of your list (instant loading with caching)
  • undefinedRepository aliases - set custom short names for quick access (e.g., “gh” for “your-github-repository-with-a-long-name”)
  • undefinedClone repositories directly to your local machine with SSH or HTTPS
  • undefinedClone in VS Code - trigger VS Code’s clone workflow with one command
  • undefinedEnhanced metadata - see stars, language, and last updated date at a glance
  • undefinedCustomizable clone directory - choose where repos are cloned
  • undefinedSSH/HTTPS toggle - switch between SSH and HTTPS for cloning
  • Support for private repositories with GitHub Personal Access Token
  • Real-time search with instant results
  • Quick access to repository URLs and clone commands
  • undefinedOptimized performance - memoized sorting and cached state for faster loading

Setup

1. Install the Extension

undefinedPlatform Support: This extension works on both macOS and Windows.

undefinedOption 1: Official Extension (Private)undefined

This extension is currently available as a private extension at https://www.raycast.com/konghq/repojet. If you have access, you can install it directly from the Raycast Store.

undefinedOption 2: Local Installationundefined

For local development or if you don’t have access to the private extension:

  1. Download the latest release from the Releases page
  2. Extract the downloaded archive
  3. In Raycast, use the “Import Extension” command
  4. Navigate to the extracted folder and select it
  5. The extension will be installed and ready to use

undefinedOption 3: Build from Sourceundefined

# Clone the repository
git clone https://github.com/arashsheyda/repojet.git
cd repojet

# Install dependencies
npm install

# Build the extension
npm run build

# Import into Raycast
# Use Raycast's "Import Extension" command and select this directory

2. Configure GitHub Token (Required)

A GitHub Personal Access Token is required to use this extension. It provides access to both public and private repositories and increases API rate limits:

  1. Go to GitHub Settings > Developer settings > Personal access tokens > Tokens (classic)
  2. Click “Generate new token (classic)”
  3. Give it a descriptive name like “Raycast RepoJet Extension”
  4. Select the repo scope, this grants:
    • Full control of private repositories (read access)
    • Access to repository metadata
    • Read access to organization repositories
  5. Set an appropriate expiration date (recommended: 90 days or less for security)
  6. Click “Generate token” at the bottom
  7. undefinedImportant: Copy the token immediately - you won’t be able to see it again!
  8. undefinedFor SSO-enabled organizations: After creating the token, you must authorize it for each organization:
    • Go to Personal Access Tokens
    • Click on your newly created token
    • Under “Configure SSO”, click Authorize next to each organization you want to search
    • This step is required for accessing repositories in organizations with SAML SSO enabled

undefinedSecurity Note: This extension only requires read access. The token validation will reject tokens with dangerous write/admin scopes like delete_repo, workflow, admin:org, or write:repo_hook.

3. Add Organizations

  1. Open Raycast
  2. Search for “GitHub Organization Search” → “Search Repositories”
  3. If not configured, you’ll see setup instructions
  4. Open Preferences (⌘,)
  5. Paste your GitHub token in “GitHub Personal Access Token”
  6. Enter your organization names (comma-separated) in “GitHub Organizations”
    • Example: myorg1, myorg2, personal-org
  7. Set your preferred “Clone Directory” for cloning repositories (default: ~/Developer)
    • You can customize this to paths like ~/Projects, ~/Code, or any absolute path
    • The default value will be used if you don’t specify a custom directory
  8. (Optional) Enable “Clone with SSH” to use SSH URLs instead of HTTPS for cloning

4. Start Searching

Search for repositories by name, description, or language!

Usage

  1. Open Raycast (default: ⌘Space)
  2. Type “Search Repositories” and hit Enter
  3. Type to search (e.g., “react”, “api”, “database”, or your custom aliases)
  4. When the search bar is empty, you’ll see a “Recently Opened” section showing repositories you’ve accessed recently
  5. Results show:
    • Repository name and description
    • Star count
    • Programming language
    • Last updated date
    • Privacy status (if private)
    • Bookmark indicator (yellow star) for bookmarked repos
    • Alias badge (purple tag) if you’ve set a custom alias
  6. Available actions:
    • undefinedEnter - Open repository in browser
    • undefined⌘O - Clone in VS Code (opens VS Code clone dialog)
    • undefined⌘D - Clone repository to your configured directory
    • undefined⌘B - Bookmark/unbookmark repository (bookmarked repos stay at the top)
    • undefined⌘L - Set or edit repository alias
    • undefined⌘⇧L - Remove repository alias
    • undefined⌘C - Copy repository URL
    • undefined⌘⇧C - Copy HTTPS clone URL
    • undefined⌘⇧S - Copy SSH clone URL
    • undefined⌘⇧R - Remove from recent (when in Recently Opened section)

Recently Opened Repositories

The extension automatically tracks repositories you interact with:

  • undefinedAutomatic tracking: Repositories are added to the “Recently Opened” list when you:
    • Open them in browser
    • Clone them to your local machine
  • undefinedQuick access: When the search bar is empty, recently opened repos appear at the top
  • undefinedPersistent history: Your recent repositories are saved and available across sessions
  • undefinedLimited to 10: The extension keeps your 10 most recent repositories
  • undefinedMost recent first: The list is automatically sorted with the most recently accessed repos at the top

This feature helps you quickly return to repositories you’re actively working with, without needing to search or bookmark them.

Repository Aliases

Create custom short names for repositories to find them quickly:

Setting an Alias

  1. Find the repository you want to alias
  2. Press ⌘L or select “Set Alias” from the actions menu
  3. Enter a short name (e.g., “lln” for “long-long-name”)
  4. Press Enter to save

Using an Alias

Simply type the alias in the search bar. The repository will be found and prioritized in the results.

undefinedExample:undefined

  • Repository: my-organization/very-long-repository-name
  • Set alias: vlrn
  • Search: Type vlrn to quickly find this repo

Managing Aliases

  • undefinedEdit: Press ⌘L on a repository with an existing alias to change it
  • undefinedRemove: Press ⌘⇧L to delete the alias
  • undefinedVisual indicator: Repositories with aliases show a purple badge with the alias name

Aliases are stored locally and work offline. They complement bookmarks by providing quick text-based access.

Keyboard Shortcuts

  • undefined⌘O - Clone in VS Code (opens clone dialog in VS Code)
  • undefined⌘D - Clone repository to local machine
  • undefined⌘B - Toggle bookmark (keeps repos at the top)
  • undefined⌘L - Set or edit repository alias
  • undefined⌘⇧L - Remove repository alias
  • undefined⌘C - Copy repository URL
  • undefined⌘⇧C - Copy HTTPS clone URL
  • undefined⌘⇧S - Copy SSH clone URL
  • undefined⌘⇧R - Remove from recent (when in Recently Opened section)
  • undefined⌘, - Open preferences

Authentication

The extension uses GitHub’s REST API v3. A GitHub Personal Access Token is required to use this extension:

  • undefinedWith token (classic PAT): Access to both public and private repositories, 5,000 requests/hour
  • undefinedNote: While the GitHub API allows unauthenticated access (60 requests/hour), this extension requires a token for optimal functionality and to ensure sufficient API rate limits

Token Requirements

  • Must be a Personal Access Token (classic)undefined
  • Required scope: repo (for private repository access)
  • Token will be validated for security - tokens with dangerous write/admin scopes will be rejected

Example Queries

  • react - Find React-related repositories
  • database - Find database-related repositories
  • language:python - Find Python repositories
  • stars:>1000 - Find popular repositories
  • is:private - Find private repositories (requires token)
  • gh - Search using your custom alias (e.g., if you set “gh” as an alias for “your-github-repository-with-a-long-name”)

Rate Limiting

GitHub API has rate limits:

  • Without token: 60 requests/hour
  • With token: 5,000 requests/hour

The extension caches results, so repeated searches are instant.

Releases

Automatic Releases with Conventional Commits

This project uses Conventional Commits for automatic versioning and releases. When you push commits to the main branch, the release workflow automatically:

  1. Analyzes your commit messages
  2. Determines the appropriate version bump
  3. Updates package.json
  4. Creates a git tag
  5. Builds and publishes a GitHub release

Downloading Releases

Visit the Releases page to download the latest version for local installation.

Troubleshooting

No results found

  • Check that your organizations are spelled correctly
  • Ensure the GitHub token is valid (if using private repos)
  • Try simpler search terms

“API rate limit exceeded”

  • Add a GitHub Personal Access Token to increase limits
  • Wait an hour for the limit to reset

Can’t access private repositories

  • Ensure your token is a Personal Access Token (classic) with repo scope
  • undefinedFor SSO organizations: Make sure you’ve authorized the token for SSO access to each organization (see step 8 in setup)
  • Token might have expired (regenerate if needed)
  • Check that you have access to the organizations you’re searching
[beta]v0.14.0