Quick Jump is a Raycast extension designed to give you and your team quick, organized access to all your essential project links. With Quick Jump, you can build a config file for your Git repositories, dashboards, databases, and internal tools, accessible with just a few keystrokes.
- Centralized Configuration: Define all your links from GitLab repositories to Grafana dashboards in a single, easy-to-manage JSON file.
- Powerful Templating: Create dynamic URLs for common patterns (e.g., Kibana logs, Project dashboard, Git Urls) using placeholders.
- Global Placeholders: Define common placeholder values once and use them across all templates. Local placeholders can override global ones.
- Template Groups: Reduce configuration duplication by grouping common templates and applying them with a single line.
- Smart Search: Instantly find what you need by searching across group names, group titles, URL titles, tags (including tags on group-specific URLs), and even URL domains.
- Detail Views: Press
Cmd+Don any item to see comprehensive details including URLs, tags, placeholders, templates, and search keywords. - "Open In" Integration: Go beyond the browser and open links directly in their native applications, like VS Code or IntelliJ IDEA. Works with all URL types: regular URLs, group-specific URLs, and templates.
- Local Icons: Use local icon files for groups, URLs, and templates, plus automatic application icons for "Open In" actions.
- Quick Editing: An "Open Config File" action is built right in, so you can add or update your links.
- After installing the extension, open the "Search" command.
- Raycast will prompt you to set the JSON File Path in the extension's preferences.
The extension provides the following preferences:
- JSON File Path (required): Path to your JSON configuration file
- Show All Group URLs: When enabled, displays all URLs from all groups directly on the main search page instead of requiring navigation into groups. Groups themselves are hidden when this option is active.
The JSON file has five main sections: groups, urls, templates, templateGroups, and globalPlaceholders.
{
"globalPlaceholders": {
"company-domain": "company.net",
"region": "us-east-1"
},
"groups": {
"my-project": {
"title": "My Awesome Project",
"icon": "project.png",
"linkedUrls": ["gitlab-repo"],
"otherUrls": {
"staging-env": {
"title": "Staging Environment",
"url": "https://staging.my-project.com",
"icon": "dashboard.png",
"tags": ["staging"],
"openIn": "Google Chrome"
}
},
"templatePlaceholders": {
"project-id": "my-project-123",
"path": "/path/to/project"
},
"appliedTemplateGroups": ["dev-tools"],
"tags": ["project"]
}
},
"urls": {
"gitlab-repo": {
"title": "My Project Repo",
"url": "https://gitlab.com/your-org/my-project",
"icon": "gitlab.png",
"tags": ["git"],
"appliedTemplates": ["open-in-code"],
"templatePlaceholders": {
"path": "/workspace/my-project"
}
}
},
"templates": {
"monitoring": {
"title": "Monitoring Dashboard",
"templateUrl": "https://grafana.${company-domain}/d/${project-id}?region=${region}",
"icon": "grafana.png",
"tags": ["monitoring"]
},
"open-in-code": {
"title": "Open in VSCode",
"templateUrl": "vscode://file/${path}",
"openIn": "com.microsoft.VSCode"
}
},
"templateGroups": {
"dev-tools": {
"appliedTemplates": ["monitoring", "open-in-code"]
}
}
}- globalPlaceholders: (Optional) Define placeholder values that are available to all templates across your configuration. These can be overridden by
templatePlaceholdersdefined in individual groups or URLs. Perfect for common values like domain names, cluster names, or environment-specific settings. - groups: The main organizational unit. A group can link to shared URLs (
linkedUrls), define group-specific URLs (otherUrls), apply templates, and define its own placeholder values. Each group can have an optionaltitlefor display purposes (if not provided, the group key is used as the title). URLs inotherUrlscan have their own titles, icons, tags, andopenInapplications. - urls: A library of shared, static URLs that can be referenced by one or more groups. URLs can also have their own templates and template groups applied. Each URL can have an optional
titlefor display purposes (if not provided, the URL key is used as the title). URLs also support theopenInfield to specify which application should open the URL. - templates: Reusable URL patterns. Any instance of
${placeholder}will be replaced by values fromglobalPlaceholdersortemplatePlaceholdersdefined in the group or URL (with local values taking precedence). - templateGroups: A powerful feature to reduce repetition. Define a set of templates here and apply them to your groups or URLs using the
appliedTemplateGroupsproperty.
The extension comes with a set of predefined PNG icons for common services and tools. You can reference these icons by their filename in your JSON configuration.
When no icon is specified, the extension automatically uses icon.png as the fallback icon for all entity types (groups, URLs, templates). This ensures a consistent visual experience even when icons are not explicitly configured.
The following icons are available in the assets folder:
github.png- GitHub repositories and services
gitlab.png- GitLab repositories and services
database.png- General database icons
couchbase.png- Couchbase database
bigquery.png- Google BigQuery
kafka.png- Apache Kafka
grafana.png- Grafana dashboards
kibana.png- Kibana logs and analytics
dashboard.png- General dashboard icons
metabase.png- Metabase analytics
google-cloud.png- Google Cloud Platform
kubernetes.png- Kubernetes clusters
argocd.png- ArgoCD deployments
airflow.png- Apache Airflow
jira.png- Jira tickets and projects
google-sheets.png- Google Sheets
swagger.png- API documentation
project.png- General project icons
If you need icons for services not included above, you have several options:
- Absolute file paths: Use the full path to any PNG file on your system
- Web URLs: Use direct URLs to PNG files (e.g.,
"icon": "https://example.com/icon.png")
Global placeholders allow you to define common template values once and use them across all your templates. This is especially useful for:
- Domain names that appear in multiple URLs
- Environment-specific values (cluster names, regions, etc.)
- Common project identifiers
Example:
{
"globalPlaceholders": {
"company-domain": "company.net",
"region": "us-east-1",
"env": "production"
},
"templates": {
"monitoring": {
"title": "Monitoring Dashboard",
"templateUrl": "https://grafana.${company-domain}/d/${project-id}?region=${region}"
},
"logs": {
"title": "Application Logs",
"templateUrl": "https://kibana.${company-domain}/app/logs?env=${env}"
}
},
"groups": {
"my-service": {
"templatePlaceholders": {
"project-id": "my-service-123"
},
"appliedTemplates": ["monitoring", "logs"]
}
}
}In this example:
company-domain,region, andenvare defined globallyproject-idis defined at the group level- The monitoring template uses both global (
company-domain,region) and local (project-id) placeholders - Local placeholders always override global ones if they have the same name
You can define templates for URLs that require dynamic values. Use ${placeholder} syntax in the templateUrl, and values will be replaced from globalPlaceholders or templatePlaceholders (with local values taking precedence).
You can also specify the application to open the URL with the openIn field for any URL type (regular URLs, other URLs in groups, and templates). This can be:
- The app's name (e.g.,
"Google Chrome","Visual Studio Code") - The app's bundle ID (e.g.,
"com.google.Chrome","com.microsoft.VSCode") - The app's path (e.g.,
"/Applications/Google Chrome.app","/Applications/Visual Studio Code.app")
Example: Regular URL with openIn
{
"urls": {
"gitlab-repo": {
"title": "My Project Repo",
"url": "https://gitlab.com/your-org/my-project",
"openIn": "com.google.Chrome"
}
}
}Example: Other URL in Group with openIn
{
"groups": {
"my-project": {
"otherUrls": {
"staging-env": {
"title": "Staging Environment",
"url": "https://staging.my-project.com",
"openIn": "company.thebrowser.Browser"
}
}
}
}
}Example: Template with openIn
{
"title": "Open Jira Ticket",
"templateUrl": "https://jira.company.com/browse/${ticketId}",
"openIn": "Google Chrome"
}- When you use this template, the extension will open the generated URL in Google Chrome instead of your default browser.
Example: Open in Visual Studio Code
{
"title": "Open in VS Code",
"templateUrl": "${projectPath}",
"openIn": "Visual Studio Code"
}- This will open the specified file or folder in Visual Studio Code.
- App Name: The visible name in your Applications folder (e.g.,
"Google Chrome","Visual Studio Code"). - Bundle ID: The unique identifier for the app (e.g.,
"com.google.Chrome","com.microsoft.VSCode").- Recommended: Use Raycast's built-in "Copy Bundle Identifier" action. Just search for the app in Raycast, open the action panel (Tab), and select "Copy Bundle Identifier".
- Alternative: Use the
mdlscommand in Terminal:mdls -name kMDItemCFBundleIdentifier /Applications/Google\ Chrome.app mdls -name kMDItemCFBundleIdentifier /Applications/Visual\ Studio\ Code.app
- App Path: The full path to the
.appbundle (e.g.,"/Applications/Google Chrome.app").
If openIn is omitted, the URL will open in your default browser.
All product icons (e.g., GitLab, Grafana) are trademarks of their respective owners. They are used here solely to visually represent links to those services in a private productivity tool. This extension is not affiliated with or endorsed by any of the referenced companies.