Add try extension
Description
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:
Due to our current reduced availability, 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 Summary
This PR adds a new "Try" extension that helps manage ephemeral workspace directories for experiments, porting functionality from the original Ruby CLI tool. The extension allows users to browse, create, and clone git repositories into date-prefixed directories with smart collision handling.
Key changes:
- New extension with a single "Browse Try Directories" command
- Supports creating new directories with automatic
YYYY-MM-DDprefix - Git repository cloning with support for GitHub, GitLab, and other hosts (HTTPS and SSH formats)
- Smart directory sorting by last access time
- Proper URL escaping in git clone command using
JSON.stringify()(addresses previous security concern) - Configurable try directory path via preferences (defaults to
~/src/tries) - Includes proper metadata screenshots and follows Raycast extension guidelines
Minor improvements recommended:
- Use auto-generated
Preferencestype instead of manual interface definition - Replace
rmSync()with Raycast'strash()method for safer file deletion
Confidence Score: 4/5
- This PR is safe to merge with minor style improvements recommended
- The extension is well-structured and follows Raycast guidelines. The previous command injection vulnerability has been properly addressed with
JSON.stringify(). Two minor style issues exist: manualPreferencesinterface definition (should use auto-generated type) and usingrmSync()instead of Raycast'strash()method. These don't affect functionality but should be improved for consistency with Raycast best practices. -
extensions/try/src/lib/constants.tsandextensions/try/src/components/TryListItem.tsxhave minor style improvements to address
Important Files Changed
| Filename | Overview |
|---|---|
| extensions/try/src/lib/try-cli.ts | Git clone logic with proper URL escaping via JSON.stringify, handles multiple git URI formats |
| extensions/try/src/components/TryListItem.tsx | List item component with delete functionality using rmSync instead of Raycast's trash() method |
| extensions/try/src/lib/constants.ts | Manual Preferences interface defined, which should be auto-generated in raycast-env.d.ts |
@pernielsentikaer I see that Copilot is currently experiencing issues with auditing. How can I resolve this, or is manual intervention necessary?
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 😊
Has no one handled this PR yet?
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 😊
1
@greptileai, could you please do a fresh review of this PR?
I have already modified this.
Published to the Raycast Store: https://raycast.com/wuyuxiangX/try
:tada: :tada: :tada:
We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.