Add folders extension
Description
Organize applications, websites, and bookmarks into custom collections accessible directly from Raycast.
Think of it as Launchpad folders meets browser bookmarks, but faster, more powerful, and right in your command bar.
Key Features
| Feature | Description |
|---|---|
| Custom Folders | Group apps, websites, and other folders into organized collections |
| Nested Folders | Create hierarchical folder structures (e.g., Work → Tools → Utilities) |
| 100+ Icons | Choose from all Raycast icons to personalize each folder |
| Custom Colors | Tint icons with hex codes or CSS color names (coral, skyblue, etc.) |
| Website Support | Add URLs with automatic favicon fetching from 6 sources in parallel |
| Auto Page Titles | URLs automatically fetch their page titles, or use [Title](URL) syntax |
| Bulk Actions | Open all apps/websites in a folder with one click |
| Copy URLs | Export as Markdown (with nested structure) or plain list |
| Move Items | Reorganize items between folders with ⌘M |
| Export/Import | Backup folders as JSON, restore on another Mac |
| Quicklinks | Pin folders to Raycast's root search |
| Preview Pane | See folder contents without opening |
Screencast
Checklist
- [x] I read the extension guidelines
- [x] I read the documentation about publishing
- [x] I ran
npm run buildand tested this distribution build in Raycast - [x] I checked that files in the
assetsfolder are used by the extension itself - [x] I checked that assets used by the
READMEare placed outside of themetadatafolder
Congratulations on your new Raycast extension! :rocket:
We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.
Once the PR is approved and merged, the extension will be available on our Store.
Greptile Overview
Greptile Summary
Added a comprehensive new extension for organizing applications, websites, and bookmarks into custom folders accessible from Raycast. The extension supports nested folder hierarchies, custom icons with colors, multiple view modes (list/grid), automatic favicon fetching, and export/import functionality.
Key Implementation Highlights:
- Properly uses auto-generated
Preferencestype fromraycast-env.d.tsinstead of manual definitions - Successfully refactored to use
@raycast/utilsgetFaviconutility with proper fallback handling - Implements circular nesting prevention for folders to avoid infinite loops
- Follows Raycast standards: correct Prettier config, ESLint setup, CHANGELOG format with
{PR_MERGE_DATE}placeholder - Includes 6 professional metadata screenshots as required for view-type commands
- Clean separation of concerns with modular hooks and utility files
- Comprehensive URL handling with "dot" text conversion and markdown link syntax support
The extension demonstrates thoughtful architecture with performance optimizations (memoization, caching), proper error handling, and excellent user experience features.
Confidence Score: 5/5
- This PR is safe to merge with minimal risk
- All files follow Raycast extension guidelines, manual Preferences interfaces have been replaced with auto-generated types, favicon implementation correctly uses @raycast/utils getFavicon, Prettier and ESLint configs follow standards, CHANGELOG uses correct placeholder format, and metadata screenshots are properly included
- No files require special attention
Important Files Changed
| Filename | Overview |
|---|---|
| extensions/folders/package.json | Well-structured extension manifest with proper preferences and dependencies |
| extensions/folders/CHANGELOG.md | Comprehensive changelog with correct {PR_MERGE_DATE} placeholder format |
| extensions/folders/src/index.tsx | Main command with deeplink support and proper folder list rendering |
| extensions/folders/src/folder-edit-form.tsx | Complex form with circular nesting prevention and item management |
| extensions/folders/src/backup.ts | Export/import functionality with proper validation and nested folder handling |
| extensions/folders/src/utils.ts | Core utilities using getFavicon from @raycast/utils, with comprehensive helpers |
The
eslint.config.jsformat requires ESLint 9+, but Raycast's tooling uses ESLint 8.x. Keeping.eslintrc.jsfor compatibility.
The other issues are fixed:
- ✅ CHANGELOG uses
{PR_MERGE_DATE} - ✅
.prettierrcusesprintWidth: 120 - ✅ ESLint config works with Raycast's tooling
also
The custom favicon implementation provides features beyond
getFavicon:
- Local file caching for faster subsequent loads
- 6 parallel sources (Google, DuckDuckGo, Icon Horse, Yandex, direct, Apple) for better success rate
- Validation to reject placeholder/empty images
-
Force refresh action (
⌘R) for manual re-fetching - Globe fallback instead of broken images
The built-in getFavicon only returns a Google URL without caching or validation.
Hey @YourMCGeek, thanks for taking the time to help me out and for the feedback :)
This is my first time making a Raycast extension, and I'm not really a coder in the traditional sense. I actually used AI to build this extension, initially just for my own use because I kept needing a way to organize my apps and websites. I had so much fun making it work for me that I thought, "Hey, maybe this could be useful for others in the same situation"
I totally understand if the code isn't up to par or doesn't meet the Raycast Store's standards, I completely get it if it needs more work or doesn't make the cut. No hard feelings at all :)
I've merged all your changes and also addressed the other feedback items you pointed out (updated dependencies, replaced custom toast functions with native APIs, fixed the configs, etc)
I ran the migration tool too and everything's building and linting cleanly now.
I appreciate you taking the time to review this. If you have a chance to re-review the changes I've made, that'd be great
And if there's anything else that needs fixing, just let me know, thanks
This pull request has been automatically marked as stale because it did not have any recent activity.
It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊
What's the purpose of this extension? It feels a bit like an enhanced version of:
Raycast Store: Quick Access by @koinzhang Raycast Store: Open Folders by @timothyBoye Raycast Store: Custom Folder by @Ph-lo
Good question, I can see why it might look similar at first.
So Custom Folder is for changing how folder icons look on your Mac, Open Folders and Quick Access are for quickly getting to your actual folders and files (like Downloads, Desktop, etc.).
This extension is pretty different; it's not about your file system at all. It's more like... a custom launcher/bookmark organizer?
I made this because I kept wanting to group apps and websites together by project or workflow, not by where they live on my computer. It's basically acting as a Launchpad replacement (especially since Launchpad is getting phased out), but with way more flexibility, you can actually nest folders, which Launchpad never let you do properly.
Here's an example of how I actually use it:
See how I have:
- A "Browsers" folder with all my different browsers grouped together
- A "Streaming" folder that has nested folders inside it for different services
- Individual folders for Discord, Figma, Sketch instances (you can have multiple versions, like beta, dev, etc)
You can't organize apps and websites like this in your actual macOS file system, they all live in different places. This gives me a centralized place to launch everything I use regularly, organized however makes sense for me, not by where macOS decided to install it.
The main things it does that the other extensions don't:
- Organize apps from anywhere on your system into custom groups
- Add websites as a type of object
- Nest folders multiple levels deep (something Launchpad never did well)
- Do bulk actions like "open all apps in this folder" or "copy all URLs as markdown"
So while those other extensions help you navigate your Downloads or Desktop faster, this is more about building a custom launch pad for everything you actually use, organized however you want.
Hope that makes sense! Let me know if you want me to clarify anything else.
I went with "Folders" because it felt straightforward; you make folders, you put things in them. If you've got a better name in mind though, definitely open to suggestions.
On the duplicates thing - I did search the store before building this and came up empty, which is partly why I made it. The ones you mentioned earlier (Quick Access, Open Folders, Custom Folder) are all file-system based.
I'll be honest, if overly descriptive names are a requirement, I'd see that as a slight downside. Feels a bit like the App Store trend where everything becomes "Folders - Organise Your Apps & Websites" or "Folders: Group it, Launch it" just to work the search algorithm. Simple tool, simple name was the thinking.
That said, I appreciate the feedback, and if you do find something similar already in the store I'd genuinely be curious to check it out.
Hey @JaceThings 👋
Can you look into this feedback from Per?
- https://github.com/raycast/extensions/pull/23753#pullrequestreview-3664050971
Can I bump a check on this? I've pretty much tried to add every single request from all the comments here, thanks
The name Folders still feels too vague for me, as I have no clue about what it does. I would think it's all about managing folders in macOS, but that's not what it does?
Bit of a shame honestly, I thought "Folders" worked well since that's quite literally what it is - you make folders, you put things in them. If someone searched "folders" in Raycast, looking to organize stuff, this would be exactly it.
But I get the concern about it sounding like a Finder tool. If a more descriptive name is needed, here are two I can live with:
- Bundles
- Folders — Organize Apps & Websites
First one keeps it short without the filesystem connotation. Second one keeps the name but adds enough context so people know what it actually does.
Either of those work? Open to other ideas too, just trying to avoid the whole App Store keyword stuffing thing if I can help it.
@pernielsentikaer any opinions on the above? •ᴗ•
Bit of a shame honestly, I thought "Folders" worked well since that's quite literally what it is - you make folders, you put things in them. If someone searched "folders" in Raycast, looking to organize stuff, this would be exactly it.
But I get the concern about it sounding like a Finder tool. If a more descriptive name is needed, here are two I can live with:
- Bundles
- Folders — Organize Apps & Websites
First one keeps it short without the filesystem connotation. Second one keeps the name but adds enough context so people know what it actually does.
Either of those work? Open to other ideas too, just trying to avoid the whole App Store keyword stuffing thing if I can help it.
I think bundles seems like a good name
Did you change the name yet @JaceThings if so, then it's not pushed
I haven't pushed it or changed it yet, as I wasn't aware whether it would be even approved if the name changed
I take this as a confirmation for the name bundles?
I haven't pushed it or changed it yet, as I wasn't aware whether it would be even approved if the name changed
I take this as a confirmation for the name bundles?
Yeah, you can change the name and update accordingly
Hey! Sorry for the mess... accidentally force pushed and broke the PR, couldn't reopen it so I made a new one: #25680
Addressed all the review feedback in this one. Also @0xdhrv my bad for the delay, I didn't realise your comment about bundles was the go-ahead — didn't know you were on the team lol. Everything should be good to go now though!
Hey! Sorry for the mess... accidentally force pushed and broke the PR, couldn't reopen it so I made a new one: #25680
Addressed all the review feedback in this one. Also @0xdhrv my bad for the delay, I didn't realise your comment about bundles was the go-ahead — didn't know you were on the team lol. Everything should be good to go now though!
No problem! I'll take a look at the new PR 😄