-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Add Shelve extension #22287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add Shelve extension #22287
Conversation
|
Congratulations on your new Raycast extension! 🚀 You can expect an initial review within five business days. Once the PR is approved and merged, the extension will be available on our Store. |
|
Greptile encountered an error while reviewing this PR. Please reach out to [email protected] for assistance. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw this on X :)
You are missing a bunch of items:
.gitignoreCHANGELOG.md.prettierrcmetadatafolder with screenshots
extensions/shelve/raycast-env.d.ts
Outdated
| /// <reference types="@raycast/api"> | ||
|
|
||
| /* 🚧 🚧 🚧 | ||
| * This file is auto-generated from the extension's manifest. | ||
| * Do not modify manually. Instead, update the `package.json` file. | ||
| * 🚧 🚧 🚧 */ | ||
|
|
||
| /* eslint-disable @typescript-eslint/ban-types */ | ||
|
|
||
| type ExtensionPreferences = {} | ||
|
|
||
| /** Preferences accessible in all the extension's commands */ | ||
| declare type Preferences = ExtensionPreferences | ||
|
|
||
| declare namespace Preferences { | ||
| /** Preferences accessible in the `encrypt` command */ | ||
| export type Encrypt = ExtensionPreferences & {} | ||
| /** Preferences accessible in the `decrypt` command */ | ||
| export type Decrypt = ExtensionPreferences & {} | ||
| } | ||
|
|
||
| declare namespace Arguments { | ||
| /** Arguments passed to the `encrypt` command */ | ||
| export type Encrypt = {} | ||
| /** Arguments passed to the `decrypt` command */ | ||
| export type Decrypt = {} | ||
| } | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is auto-generated at runtime so it is NOT supposed to be checked in.
Thanks for catching that and glad you saw it on X! :) Just added everything that was missing. Used the alternative publishing method and overlooked those, my mistake! Appreciate it! 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor comments then LGTM!
extensions/shelve/src/decrypt.tsx
Outdated
| }); | ||
| }} | ||
| /> | ||
| <Action title="Decrypt Another Secret" onAction={onDecryptAnother} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't really need this since user can press Esc to go back.
extensions/shelve/src/decrypt.tsx
Outdated
|
|
||
| return ( | ||
| <Form | ||
| enableDrafts={false} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
redundant since enableDrafts is "off" by default
| enableDrafts={false} |
extensions/shelve/src/decrypt.tsx
Outdated
| isLoading={isLoading} | ||
| actions={ | ||
| <ActionPanel> | ||
| <Action.SubmitForm title="Decrypt Secret" onSubmit={handleSubmit} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's add an icon here.
extensions/shelve/src/encrypt.tsx
Outdated
| isLoading={isLoading} | ||
| actions={ | ||
| <ActionPanel> | ||
| <Action.SubmitForm onSubmit={handleSubmit} title="Encrypt Secret" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add an icon please!
extensions/shelve/CHANGELOG.md
Outdated
| @@ -0,0 +1,7 @@ | |||
| # Shelve Changelog | |||
|
|
|||
| ## [Initial Release] - 2025-10-20 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ## [Initial Release] - 2025-10-20 | |
| ## [Initial Release] - {PR_MERGE_DATE} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just cloned it locally and it's working great!
we need one more icon, then don't forget to lint.
last one 🫠
extensions/shelve/src/encrypt.tsx
Outdated
| message: error instanceof Error ? error.message : "Failed to encrypt secret", | ||
| style: Toast.Style.Failure, | ||
| }); | ||
| console.error("Vault API error:", error); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| console.error("Vault API error:", error); |
| markdown={markdown} | ||
| actions={ | ||
| <ActionPanel> | ||
| <Action |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <Action | |
| <Action icon={Icon.CopyClipboard} |
extensions/shelve/src/decrypt.tsx
Outdated
| message: error instanceof Error ? error.message : "Failed to decrypt secret", | ||
| style: Toast.Style.Failure, | ||
| }); | ||
| console.error("Vault decrypt error:", error); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| console.error("Vault decrypt error:", error); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.



Description
This is an extension for https://vault.shelve.cloud. Shelve makes it easy to securely share sensitive information without requiring an account. Set expiration times, control read limits, and ensure encrypted transmission.
Screencast
shelve-extension.mp4
@HugoRCD