Skip to content

Raycast Toolkit Improvements#1032

Open
unnamedd wants to merge 27 commits intoraycast:masterfrom
unnamedd:improvements-on-toolkit
Open

Raycast Toolkit Improvements#1032
unnamedd wants to merge 27 commits intoraycast:masterfrom
unnamedd:improvements-on-toolkit

Conversation

@unnamedd
Copy link
Copy Markdown
Contributor

Description

Finally, after a few years without giving any kind of love to our beloved Toolkit, here we are with a few improvements in the project.

In this pull request, I am introducing improvements and new support.

  • Upgrade in the external libraries
  • Support for Swift 6
  • Support for Swift async/await
  • New meta tag on Script Commands: @raycast.platform. This is due to the new support of Raycast for the Windows platform.
  • New language: PowerShell
  • Improvements in icon detection
  • Remove support for the original report
  • Update the documentation in the main README.md
  • Update the copyright in the file headers

Type of change

  • New script command
  • Bug fix
  • Improvement of an existing script
  • Documentation update
  • Toolkit change
  • Other (Specify)

Checklist

Comment thread Tools/Toolkit/.editorconfig Outdated
Comment thread Tools/Toolkit/.swift-version Outdated
unnamedd and others added 9 commits April 15, 2026 18:14
# Conflicts:
#	commands/extensions.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Console has no stored instance state so the compiler can verify
Sendable safety without the @unchecked bypass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers raw values, markdown descriptions, case-sensitivity of decoding,
nil default behaviour, codable round-trip, and full ScriptCommand JSON
decoding with and without the platform field.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously stderr was captured but never read, so git failures only
reported the exit code. Now stderr is read in the termination handler
and included in the error message for easier debugging.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep the original branding instead of "Awesome Script Commands",
and remove the matching link from the main README.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@grzegorzkrukowski
Copy link
Copy Markdown
Contributor

grzegorzkrukowski commented Apr 24, 2026

Hey @unnamedd - I've been looking into that again as I found few more things.

The generated extensions.json is broken - "paths" are truncated.
If you try to generate it locally, you will find "system → stem, culture → lture, home → me".

I refactored a bit the URL handling, need to test things again next week to make sure there are no more regressions like that.

@grzegorzkrukowski grzegorzkrukowski force-pushed the improvements-on-toolkit branch from 9c7657b to b78006c Compare April 24, 2026 21:06
The old code computed relative paths with dropFirst(extensionsPathString.count + 1),
but extensionsPathString came from URL.appendingPathComponent("./commands") which
preserved the literal "./" — making it 2 chars longer than the actual resolved file
paths from FileManager. Every script path was silently truncated (system/ → stem/,
apps/ → ps/, etc.) for all 851 scripts.

Replace both callsites with a new URL.relativePath(from:) helper that standardizes
both sides before computing the relative path, eliminating the mismatch entirely.
extensionsPathString is no longer needed and is removed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…output

Groups were processed concurrently via withThrowingTaskGroup, so completion
order was non-deterministic. scriptCommands were appended in filesystem order.
Both are now sorted alphabetically at every recursion level so extensions.json
is stable across runs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants