Skip to content

Conversation

@RUBisco0211
Copy link

@RUBisco0211 RUBisco0211 commented Jan 31, 2026

Description

A Raycast extension to upload images to image hosts using PicGo-Core API.

How It Works

This extension integrates with picgo library to handle image uploads.

  • Configuration Management: The extension reads your PicGo config file (~/.picgo/config.json) to detect installed uploaders and their configurations.You can choose which uploader and config to use from the dropdown menu. The extension persists your selection in Raycast LocalStorage and won't change your local config file.

  • Select and Send Images: Select images (allow multi selection) from file picker or paste from clipboard Cmd+V. .

  • Copy Result: Choose your preferred format (URL, Markdown, HTML, or UBB) and copy to clipboard.

Screencast

Screencast

Checklist

- update npm-mirror
- update metadata
- update readme
- update metadata
- clean code
- update readme
- update readme
- update readme
- first commit
@raycastbot raycastbot added new extension Label for PRs with new extensions platform: macOS labels Jan 31, 2026
@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

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.

@RUBisco0211 RUBisco0211 marked this pull request as ready for review January 31, 2026 14:16
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 31, 2026

Greptile Overview

Greptile Summary

This PR adds a new PicGo extension that integrates with PicGo-Core to upload images to various image hosting services directly from Raycast.

Key Changes:

  • Implements image upload functionality using the picgo library
  • Reads and respects user's PicGo configuration from ~/.picgo/config.json
  • Stores user's uploader selection in Raycast LocalStorage
  • Supports multiple upload methods (file picker and clipboard)
  • Provides multiple export formats (URL, Markdown, HTML, UBB)
  • Includes comprehensive documentation and metadata screenshots

Issues Found:

  • Math error in timeout message calculation (util.ts:21) - divides by 10000 instead of 1000

Compliance:

  • ✅ Follows Raycast Prettier configuration
  • ✅ Uses correct ESLint setup with defineConfig from eslint/config
  • ✅ Includes CHANGELOG with {PR_MERGE_DATE} placeholder
  • ✅ Includes required metadata screenshots for view-type command
  • ✅ Uses title case in preferences
  • ✅ Properly uses getPreferenceValues<Preferences>() with auto-generated types

Confidence Score: 4/5

  • Safe to merge after fixing the minor math error in timeout message
  • Well-structured extension with clean code, proper error handling, and good adherence to Raycast guidelines. Only issue is a division error that displays incorrect timeout duration in error messages (doesn't affect functionality)
  • extensions/picgo/src/util/util.ts needs the timeout calculation fixed

Important Files Changed

Filename Overview
extensions/picgo/package.json Clean package.json with proper dependencies, title case, and preferences configuration
extensions/picgo/CHANGELOG.md Correct changelog format with {PR_MERGE_DATE} placeholder
extensions/picgo/src/upload-images.tsx Main command component with proper form handling, clipboard upload, and error management
extensions/picgo/src/util/util.ts Utility functions with image file validation and timeout wrapper; has math error in timeout message
extensions/picgo/src/util/context.ts PicGo context initialization and config management functions

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants