@@ -18,7 +18,9 @@
[Raycast](https://raycast.com/) lets you control your tools with a few keystrokes and installing script commands makes it possible to execute commands from anywhere on your desktop. They are a great way to speed up every-day tasks such as converting data, opening bookmarks or triggering dev workflows. This repository contains some example scripts as well as links to our community commands and documentation to write your own ones.
-🚨 For anything that is not related to script commands, please [send us an email](feedback@raycast.com), use the feedback command within Raycast, or join the [Slack community](https://www.raycast.com/community).
+**✨ Looking to build richer extensions?** Check out the Extensions API [here](https://github.com/raycast/extensions).
+
+🚨 For anything that is not related to script commands, please [send us an email](mailto:feedback@raycast.com), use the feedback command within Raycast, or join the [Slack community](https://www.raycast.com/community).
@@ -32,11 +34,15 @@
To install new commands, follow these steps:
-1. Choose your script from the [community repo](https://github.com/raycast/script-commands/tree/master/commands#apps) and save them into a new directory (alternatively, you can use the [_enabled-commands](https://github.com/raycast/script-commands/tree/master/_enabled-commands) folder for this).
-2. Open the Extensions tab in the Raycast preferences
-3. Click the plus button
-4. Click `Add Script Directory`
-5. Select directories containing your Script Commands
+1. Choose a script from the [community repo](https://github.com/raycast/script-commands/tree/master/commands#apps) and save it into a new directory.
+
+ Scripts containing the word `.template.` in the filename require some values to be set (check [the troubleshooting section](#troubleshooting-and-faqs) for more information).
+
+ Alternatively, instead of creating a new directory you can reuse the repo's [`_enable-commands` folder](https://github.com/raycast/script-commands/tree/master/_enabled-commands).
+3. Open the Extensions tab in the Raycast preferences
+4. Click the plus button
+5. Click `Add Script Directory`
+6. Select directories containing your Script Commands
**💡 Hint:** We recommend that you don't directly load the community script directories into Raycast to avoid potential restructuring and new script commands suddenly appearing in Raycast.
diff --git a/Tools/Toolkit/Package.resolved b/Tools/Toolkit/Package.resolved
index a92b4e5ca..b28930b2b 100644
--- a/Tools/Toolkit/Package.resolved
+++ b/Tools/Toolkit/Package.resolved
@@ -6,8 +6,8 @@
"repositoryURL": "https://github.com/apple/swift-argument-parser.git",
"state": {
"branch": null,
- "revision": "9564d61b08a5335ae0a36f789a7d71493eacadfc",
- "version": "0.3.2"
+ "revision": "d2930e8fcf9c33162b9fcc1d522bc975e2d4179b",
+ "version": "1.0.1"
}
},
{
@@ -15,8 +15,8 @@
"repositoryURL": "https://github.com/apple/swift-tools-support-core.git",
"state": {
"branch": null,
- "revision": "243beea77d20db46647a3de4765c96e2c801c7c7",
- "version": "0.1.12"
+ "revision": "f9bbd6b80d67408021576adf6247e17c2e957d92",
+ "version": "0.2.4"
}
}
]
diff --git a/Tools/Toolkit/Package.swift b/Tools/Toolkit/Package.swift
index 1cbc72245..2d91c0bc5 100644
--- a/Tools/Toolkit/Package.swift
+++ b/Tools/Toolkit/Package.swift
@@ -10,11 +10,11 @@ let package = Package(
dependencies: [
.package(
url: "https://github.com/apple/swift-tools-support-core.git",
- .upToNextMinor(from: "0.1.11")
+ .upToNextMinor(from: "0.2.4")
),
.package(
url: "https://github.com/apple/swift-argument-parser.git",
- .upToNextMinor(from: "0.3.0")
+ .upToNextMinor(from: "1.0.0")
),
],
targets: [
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Documentation/Documentation.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Documentation/Documentation.swift
index 43c98f885..0d07a8739 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Documentation/Documentation.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Documentation/Documentation.swift
@@ -117,7 +117,7 @@ private extension Documentation {
contentString += .newLine
contentString += .newLine + "| Icon | Title | Description | Author | Args | Templ | Lang |"
- contentString += .newLine + "| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |"
+ contentString += .newLine + "| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |"
for scriptCommand in group.scriptCommands.sorted() {
contentString += scriptCommand.markdownDescription
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Stores/DataManager.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Stores/DataManager.swift
index 9ffafed1d..9339abad9 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Stores/DataManager.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Stores/DataManager.swift
@@ -48,6 +48,12 @@ public final class DataManager {
total += 1
}
+ func addLanguage(_ language: String) {
+ data.languages.insert(
+ Language.Information(name: language)
+ )
+ }
+
func loadContent() {
if let byteString = try? fileSystem.readFileContents(extensionsPath) {
let data = byteString.contents.data
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+Constants.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+Constants.swift
index 171c279be..4558f2628 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+Constants.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+Constants.swift
@@ -30,7 +30,7 @@ public extension Toolkit {
static var information: (name: String, version: String) {
(
name: "Raycast Toolkit",
- version: "0.3.1"
+ version: "0.4.0"
)
}
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+ReadContent.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+ReadContent.swift
index d73994300..d8000d9f2 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+ReadContent.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Core/Toolkit/Toolkit+ReadContent.swift
@@ -7,8 +7,10 @@ import Foundation
import TSCBasic
extension Toolkit {
+ typealias FolderContent = (scriptCommands: ScriptCommands, readmePath: String?, groupName: String)
+
@discardableResult
- func readFolderContent(path: AbsolutePath, parentGroups: inout Groups, ignoreFilesInDir: Bool = false) throws -> ScriptCommands {
+ func readFolderContent(path: AbsolutePath, parentGroups: inout Groups, ignoreFilesInDir: Bool = false) throws -> FolderContent {
var scriptCommands = ScriptCommands()
for directory in onlyDirectories(at: path) {
@@ -23,22 +25,34 @@ extension Toolkit {
var subGroups = Groups()
- let values = try readFolderContent(path: directory, parentGroups: &subGroups)
+ let (scriptCommands, readmePath, groupName) = try readFolderContent(path: directory, parentGroups: &subGroups)
+
+ if groupName.isEmpty == false, groupName.lowercased() == group.name.lowercased() {
+ group.name = groupName
+ }
- if values.isEmpty == false {
- group.scriptCommands = values
+ if scriptCommands.isEmpty == false {
+ group.scriptCommands = scriptCommands
}
if subGroups.isEmpty == false {
group.subGroups = subGroups
}
- if values.isEmpty == false || subGroups.isEmpty == false {
+ if let readmePath = readmePath {
+ group.readme = readmePath
+ }
+
+ if scriptCommands.isEmpty == false || subGroups.isEmpty == false {
parentGroups.append(group)
}
}
let directoryFiles = onlyFiles(at: path)
+
+ var groupName = ""
+ var readmePath: String?
+
for file in directoryFiles where directoryFiles.isEmpty == false {
guard ignoreFilesInDir == false else {
continue
@@ -50,21 +64,37 @@ extension Toolkit {
continue
}
- if var scriptCommand = readScriptCommand(from: file) {
+ if file.basenameWithoutExt.lowercased() == "readme" {
+ guard let fileContent = readContentFile(from: file), fileContent.count > 0 else {
+ continue
+ }
+
+ let pathCount = dataManager.extensionsPathString.count + 1
+ readmePath = String(file.pathString.dropFirst(pathCount))
+ } else if var scriptCommand = readScriptCommand(from: file) {
// This is to avoid data racing
DispatchQueue.global(qos: .userInitiated).async {
self.dataManager.increaseTotal()
+ self.dataManager.addLanguage(scriptCommand.language)
}
scriptCommand.configure(
isExecutable: fileSystem.isExecutableFile(file)
)
+ if let packageName = scriptCommand.packageName {
+ groupName = packageName
+ }
+
scriptCommands.append(scriptCommand)
}
}
- return scriptCommands
+ return (
+ scriptCommands: scriptCommands,
+ readmePath: readmePath,
+ groupName: groupName
+ )
}
func readContentFile(from path: AbsolutePath) -> String? {
@@ -80,7 +110,7 @@ extension Toolkit {
func extractGitDates(from filePath: AbsolutePath) -> [String]? {
do {
- let dates = try self.git.run(
+ let dates = try git.run(
"log", "--format=%aI", "--follow", filePath.basename,
path: filePath
)
@@ -115,7 +145,6 @@ extension Toolkit {
let filenameKey = ScriptCommand.CodingKeys.filename.rawValue
let packageNameKey = ScriptCommand.CodingKeys.packageName.rawValue
- // TODO: Use the content of dictionary to implement the validation
var dictionary = readKeyValues(of: content)
dictionary[filenameKey] = filename
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Models/Group.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Models/Group.swift
index 0d7d01e70..288c91759 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Models/Group.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Models/Group.swift
@@ -8,8 +8,9 @@ import Foundation
typealias Groups = [Group]
struct Group: Codable {
- let name: String
+ var name: String
let path: String
+ var readme: String?
var scriptCommands: ScriptCommands = []
var subGroups: Groups?
}
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Models/Language+Information.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Models/Language+Information.swift
new file mode 100644
index 000000000..bbe8df004
--- /dev/null
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Models/Language+Information.swift
@@ -0,0 +1,28 @@
+//
+// MIT License
+// Copyright (c) 2020-2021 Raycast. All rights reserved.
+//
+
+extension Language {
+ typealias Informations = [Information]
+
+ struct Information: Codable {
+ let name: String
+ let displayName: String
+ let icon: String?
+
+ init(name: String) {
+ let language = Language(name)
+
+ self.name = language.name
+ self.displayName = language.displayName
+ self.icon = language.icon
+ }
+ }
+}
+
+extension Language.Information: Hashable {
+ func hash(into hasher: inout Hasher) {
+ hasher.combine(name)
+ }
+}
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Models/Language.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Models/Language.swift
index 1a2944989..eee029a7c 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Models/Language.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Models/Language.swift
@@ -12,6 +12,7 @@ enum Language {
case ruby
case swift
case node
+ case php
case custom(String)
init(_ rawValue: String) {
@@ -20,7 +21,7 @@ enum Language {
switch value {
case "applescript", "osascript":
self = .applescript
- case "bash", "zsh":
+ case "bash", "zsh", "sh":
self = .bash
case "python", "python2", "python3":
self = .python
@@ -28,8 +29,10 @@ enum Language {
self = .ruby
case "swift":
self = .swift
- case "node", "js":
+ case "node", "js", "zx":
self = .node
+ case "php":
+ self = .php
default:
self = .custom(value)
}
@@ -49,6 +52,8 @@ enum Language {
return "icon-swift.png"
case .node:
return "icon-nodejs.png"
+ case .php:
+ return "icon-php.png"
default:
return nil
}
@@ -68,6 +73,8 @@ enum Language {
return "Swift"
case .node:
return "Node"
+ case .php:
+ return "PHP"
case .custom(let name):
return name
}
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Models/RaycastData.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Models/RaycastData.swift
index 870f01b38..c78d8056f 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Models/RaycastData.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Models/RaycastData.swift
@@ -10,6 +10,7 @@ struct RaycastData: Codable {
var updatedAt: Date
var totalScriptCommands: Int
var metadata: [Metadata]
+ var languages: Set
var isEmpty: Bool {
groups.isEmpty
@@ -22,6 +23,7 @@ struct RaycastData: Codable {
case updatedAt
case totalScriptCommands
case metadata
+ case languages
}
init() {
@@ -29,6 +31,7 @@ struct RaycastData: Codable {
self.updatedAt = Date()
self.totalScriptCommands = 0
self.metadata = []
+ self.languages = []
}
init(from decoder: Decoder) throws {
@@ -36,6 +39,7 @@ struct RaycastData: Codable {
groups = try container.decode(Groups.self, forKey: .groups)
totalScriptCommands = try container.decode(Int.self, forKey: .totalScriptCommands)
+ languages = try container.decode(Set.self, forKey: .languages)
if let value = try container.decodeIfPresent(String.self, forKey: .updatedAt) {
let dateFormatter = DateFormatter()
diff --git a/Tools/Toolkit/Sources/ToolkitLibrary/Models/ScriptCommand.swift b/Tools/Toolkit/Sources/ToolkitLibrary/Models/ScriptCommand.swift
index c0e9b81aa..58265b460 100644
--- a/Tools/Toolkit/Sources/ToolkitLibrary/Models/ScriptCommand.swift
+++ b/Tools/Toolkit/Sources/ToolkitLibrary/Models/ScriptCommand.swift
@@ -175,7 +175,7 @@ extension ScriptCommand: MarkdownDescriptionProtocol {
}
if let value = self.details {
- details = value
+ details = value.replacingOccurrences(of: "|", with: #"\|"#)
}
let language = Language(self.language).markdownDescription
diff --git a/Tools/Toolkit/toolkit b/Tools/Toolkit/toolkit
deleted file mode 120000
index a20c8ecf7..000000000
--- a/Tools/Toolkit/toolkit
+++ /dev/null
@@ -1 +0,0 @@
-.build/debug/toolkit
\ No newline at end of file
diff --git a/commands/README.md b/commands/README.md
index 4bb1832c3..c50ff8db0 100644
--- a/commands/README.md
+++ b/commands/README.md
@@ -25,74 +25,110 @@ This repository contains sample commands and documentation to write your own one
### Categories
+- [Ai](#ai)
+ - [Gemini](#gemini)
- [Apps](#apps)
- [Agenda](#agenda)
- [Amphetamine](#amphetamine)
+ - [Baremetrics](#baremetrics)
+ - [Bartender](#bartender)
- [Bear](#bear)
+ - [BusyCal](#busycal)
+ - [Chatgpt](#chatgpt)
+ - [Claude](#claude)
- [Cleanshot](#cleanshot)
- [Craft](#craft)
+ - [DND Me](#dnd-me)
- [Deepl](#deepl)
- - [Dnd Me](#dnd-me)
+ - [Devutils](#devutils)
+ - [Dictionary](#dictionary)
+ - [Downie](#downie)
- [Espanso](#espanso)
+ - [Eudic](#eudic)
- [Evernote](#evernote)
+ - [ExpressVPN](#expressvpn)
- [Fantastical](#fantastical)
- [Ferdi](#ferdi)
- - [Hazeover](#hazeover)
- - [Iconsur](#iconsur)
- - [Iterm](#iterm)
+ - [Find My](#find-my)
+ - [Focus](#focus)
+ - [GoodLinks](#goodlinks)
+ - [HazeOver](#hazeover)
+ - [Hyper](#hyper)
+ - [Lungo](#lungo)
- [Mail](#mail)
- - [Meetingbar](#meetingbar)
+ - [Medo](#medo)
+ - [MeetingBar](#meetingbar)
+ - [MenubarX](#menubarx)
+ - [Message](#Message)
- [Mullvad](#mullvad)
- - [Noteplan3](#noteplan3)
+ - [NotePlan3](#noteplan3)
- [Notes](#notes)
- [Obsidian](#obsidian)
- - [Openvpn](#openvpn)
- - [Phpstorm](#phpstorm)
+ - [One Thing](#one-thing)
+ - [OpenVPN](#openvpn)
+ - [PhpStorm](#phpstorm)
- [Plash](#plash)
- [Playground](#playground)
- [Pulse Secure](#pulse-secure)
+ - [Quip](#quip)
+ - [Raycast](#raycast)
+ - [Reminders](#reminders)
- [Safari](#safari)
- - [Script Kit](#script-kit)
- [Session](#session)
- - [Sidenotes](#sidenotes)
+ - [SideNotes](#sidenotes)
- [Sip](#sip)
- - [Spotify](#spotify)
+ - [Stickies](#stickies)
+ - [Sublime](#sublime)
- [Surfshark](#surfshark)
- [Tailscale](#tailscale)
+ - [Terminal Translate](#terminal-translate)
- [Things](#things)
+ - [Timing](#timing)
- [Todoist](#todoist)
- [Translate Shell](#translate-shell)
- [Trello](#trello)
- - [Tunnelblick](#tunnelblick)
+ - [TunnelBlick](#tunnelblick)
- [Viscosity](#viscosity)
+ - [WARP](#warp)
+ - [WebStorm](#webstorm)
- [Wikipedia](#wikipedia)
- [Y Pomodoro](#y-pomodoro)
-- [Bookmarks](#bookmarks)
+ - [iTerm](#iterm)
+ - [iconsur](#iconsur)
- [Browsing](#browsing)
- [Communication](#communication)
- [Cloudup](#cloudup)
+ - [DuckDuckGo Email Protection](#duckduckgo-email-protection)
- [Emojis](#emojis)
- [Gmail](#gmail)
- [Google Meet](#google-meet)
+ - [Mail](#mail)
- [Messenger](#messenger)
- [Slack](#slack)
- [Zoom](#zoom)
- [Conversions](#conversions)
- [Change Case](#change-case)
+- [Culture](#culture)
- [Dashboard](#dashboard)
- [Countdowns](#countdowns)
+ - [Firebase](#firebase)
+ - [Mood Meter](#mood-meter)
+ - [Open Weather](#open-weather)
+- [Dashboards](#dashboards)
- [Developer Utils](#developer-utils)
- [Aws](#aws)
- [Brew](#brew)
- [Cloudflare](#cloudflare)
- [Docker](#docker)
- [Git](#git)
- - [Github](#github)
- - [Gitlab](#gitlab)
+ - [GitHub](#github)
+ - [GitLab](#gitlab)
- [Google](#google)
- [Ip](#ip)
+ - [Minikube](#minikube)
- [Sentry](#sentry)
-- [Google Maps](#google-maps)
+ - [Vscode](#vscode)
+ - [Xcode](#xcode)
- [Home](#home)
- [Elgato](#elgato)
- [Philips Hue](#philips-hue)
@@ -101,29 +137,51 @@ This repository contains sample commands and documentation to write your own one
- [Apple Music](#apple-music)
- [Apple Tv](#apple-tv)
- [Cmus](#cmus)
+ - [Endel](#endel)
+ - [Lowfi](#lowfi)
+ - [Sonos](#sonos)
+ - [Speaker Setup](#speaker-setup)
- [Spotify](#spotify)
+ - [Tidal](#tidal)
+ - [foobar2000](#foobar2000)
- [Navigation](#navigation)
-- [Password Managers](#password-managers)
- - [Bitwarden](#bitwarden)
- [Productivity](#productivity)
+ - [Bitwarden](#bitwarden)
- [Imgur](#imgur)
- [Pomodoro](#pomodoro)
- - [Stopwatch](#stopwatch)
+ - [Writing](#writing)
+ - [macOCR](#macocr)
+ - [stopwatch](#stopwatch)
+ - [tesseract](#tesseract)
- [Remote Control](#remote-control)
- - [Lg Tv](#lg-tv)
- - [Samsung Tv](#samsung-tv)
+ - [Ddc](#ddc)
+ - [Arm64](#arm64)
+ - [X86](#x86)
+ - [Denon AVR](#denon-avr)
+ - [LG TV](#lg-tv)
+ - [Samsung TV](#samsung-tv)
- [System](#system)
- [Audio](#audio)
- - [Vpn](#vpn)
+ - [Magic Keyboard Switcher](#magic-keyboard-switcher)
+ - [VPN](#vpn)
+ - [Vpnutil](#vpnutil)
- [Web Searches](#web-searches)
- - [Wordpress](#wordpress)
+ - [WordPress](#wordpress)
+
+## Ai
+
+#### Gemini
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Ask Gemini](ai/gemini/gemini.js) | Open Gemini in Chrome browser and submit a prompt with optional selected text as context | [Est7](https://github.com/est7) and [Nimo Beeren](https://github.com/nimobeeren) | ✅ | | |
## Apps
#### Agenda
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Agenda Today Overview](apps/agenda/agenda-today.sh) | Opens Agenda - Today Overview | [Michael Ellis](https://github.com/mtellis2) | | | |
| | [Create New On the Agenda Note](apps/agenda/agenda-new-note.sh) | Creates New Note and adds it to On the Agenda | [Michael Ellis](https://github.com/mtellis2) | ✅ | | |
| | [On the Agenda Overview](apps/agenda/agenda-on-the-agenda.sh) | Opens Agenda - On the Agenda Overview | [Michael Ellis](https://github.com/mtellis2) | | | |
@@ -131,14 +189,30 @@ This repository contains sample commands and documentation to write your own one
#### Amphetamine
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [End Session](apps/amphetamine/amphetamine-off.applescript) | Stop Current Amphetamine Session | [James Lyons](https://github.com/jamesjlyons) | | | |
| | [Start Default Session](apps/amphetamine/amphetamine-on.applescript) | Start Default Amphetamine Session | [James Lyons](https://github.com/jamesjlyons) | | | |
+#### Baremetrics
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Annual Recurring Revenue](apps/baremetrics/get-arr.sh) | Display Annual Recurring Revenue (ARR) | [Valentin Chrétien](https://github.com/valentinchrt) | | | |
+ | | [Average Revenue Per User](apps/baremetrics/get-arpu.sh) | Display Average revenue per user (ARPU) | [Valentin Chrétien](https://github.com/valentinchrt) | | | |
+ | | [Lifetime Value](apps/baremetrics/get-ltv.sh) | Display Lifetime Value (LTV) | [Valentin Chrétien](https://github.com/valentinchrt) | | | |
+ | | [Monthly Recurring Revenue](apps/baremetrics/get-mrr.sh) | Display Monthly Recurring Revenue (MRR) | [Valentin Chrétien](https://github.com/valentinchrt) | | | |
+ | | [Revenue](apps/baremetrics/simple-dashboard.sh) | Display Revenue Dashboard | [Valentin Chrétien](https://github.com/valentinchrt) | | | |
+
+#### Bartender
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Search Bartender](apps/bartender/bartender-search.applescript) | Perform a quick search of Menu Bar Items, in Bartender 4 | Raycast | ✅ | | |
+
#### Bear
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Add Note](apps/bear/bear-add-note.sh) | Add a new note to Bear. | [Tanay Nistala](https://github.com/tanaynistala) | ✅ | | |
| | [Open Note](apps/bear/bear-open-note.sh) | Open the specified note in Bear. | [Tanay Nistala](https://github.com/tanaynistala) | ✅ | | |
| | [Open Tag](apps/bear/bear-open-tag.sh) | Open the specified tag in Bear. | [Tanay Nistala](https://github.com/tanaynistala) | ✅ | | |
@@ -146,10 +220,28 @@ This repository contains sample commands and documentation to write your own one
| | [Open Todos](apps/bear/bear-todo.sh) | Open the Todo section in Bear. | [Tanay Nistala](https://github.com/tanaynistala) | ✅ | | |
| | [Search](apps/bear/bear-search.sh) | Search notes by keyword and/or tag in Bear. | [Tanay Nistala](https://github.com/tanaynistala) | ✅ | | |
+#### BusyCal
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Create Event/Task](apps/busycal/new-busycal-event-or-task.applescript) | Creates new events or tasks in BusyCal. | [Annie Ma](www.anniema.co) | ✅ | | |
+
+#### Chatgpt
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [chatgpt](apps/chatgpt/chatgpt-open-safari.applescript) | Open chatgpt in safari | [gintonyc](https://raycast.com/gintonyc) | | | |
+
+#### Claude
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | ✨ | [Ask Claude](apps/claude/claude.js) | Open Claude in Chrome browser and submit a prompt | [Nimo Beeren](https://github.com/nimobeeren) | ✅ | | |
+
#### Cleanshot
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Add Quick Access Overlay](apps/cleanshot/cleanshot-add-quick-access-overlay.sh) | Opens a new Quick Access Overlay with the specified image or video. | [CleanShot X](https://twitter.com/CleanShot_app) | ✅ | | |
| | [Annotate](apps/cleanshot/cleanshot-annotate.sh) | Opens specified file in Annotate. | [CleanShot X](https://twitter.com/CleanShot_app) | ✅ | | |
| | [Capture Area](apps/cleanshot/cleanshot-capture-area.sh) | Take a screenshot of a specific area on your screen. | [CleanShot X](https://twitter.com/CleanShot_app) | | | |
@@ -160,6 +252,7 @@ This repository contains sample commands and documentation to write your own one
| | [Open from Clipboard](apps/cleanshot/cleanshot-open-from-clipboard.sh) | Open screenshot that is currently in the clipboard. | [CleanShot X](https://twitter.com/CleanShot_app) | | | |
| | [Pin to the Screen](apps/cleanshot/cleanshot-pin.sh) | Pin a screenshot to the screen. | [CleanShot X](https://twitter.com/CleanShot_app) | ✅ | | |
| | [Record Screen](apps/cleanshot/cleanshot-record-screen.sh) | Start a screen recording and save it as a video or an optimized GIF file. | [CleanShot X](https://twitter.com/CleanShot_app) | | | |
+ | | [Record Screen With Keystroke Pro](apps/cleanshot/cleanshot-record-screen-with-keystroke-pro.sh) | Start a screen recording with keystrokes using the Keystroke Pro app and save it as a video or an optimized GIF file. | [Danylo Zalizchuk](https://raycast.com/danulqua) | | | |
| | [Restore Recently Closed File](apps/cleanshot/cleanshot-restore.sh) | Restore the recently closed file. | [CleanShot X](https://twitter.com/CleanShot_app) | | | |
| | [Scrolling Capture](apps/cleanshot/cleanshot-scrolling-capture.sh) | Capture any scrollable content. | [CleanShot X](https://twitter.com/CleanShot_app) | | | |
| | [Self-Timer](apps/cleanshot/cleanshot-self-timer.sh) | Take a screenshot after a specified delay to capture the perfect moment. | [CleanShot X](https://twitter.com/CleanShot_app) | | | |
@@ -168,28 +261,79 @@ This repository contains sample commands and documentation to write your own one
#### Craft
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create Doc](apps/craft/craft-create-doc.template.sh) | Creates a doc in Craft | [James Lyons](https://github.com/jamesjlyons) | ✅ | ✅ | |
| | [Search in Workspace](apps/craft/craft-search-workspace.template.sh) | Searches in Workspace in Craft | [James Lyons](https://github.com/jamesjlyons) | ✅ | ✅ | |
+#### DND Me
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🔕 | [Start DND](apps/dnd-me/start-dnd-me.sh) | Starts DND via DND Me. The parameter has to be a menu item or slider equivalent: 15m, 30m, 1h, 2h, ..., 12h, next, next-hour, next-half-hour; it defaults to next. next-hour means the next 60m mark, next-half-hour means the next 30m mark and next means the first of the two. For example, if it's 9:22, next-hour means 10:00, next-half-hour means 9:30 and next means 9:30. | [Roland Leth](https://runtimesharks.com/projects/dnd-me) | ✅ | | |
+ | 🔔 | [Stop DND](apps/dnd-me/stop-dnd-me.sh) | Stops DND via DND Me. | [Roland Leth](https://runtimesharks.com/projects/dnd-me) | | | |
+
#### Deepl
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [DeepL App Translate](apps/deepl/deepl-app-translate.applescript) | Translate text in DeepL for Mac. Features options to input from the clipboard as well as automatically copy translation results. | [Jono Hewitt](https://github.com/jonohewitt) | ✅ | | |
| | [DeepL Web Translate](apps/deepl/deepl-web-translate.sh) | Translate text on the DeepL website. Translates to a default language if no "to" argument is given. | [Jono Hewitt](https://github.com/jonohewitt) | ✅ | | |
-#### Dnd Me
-
-| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | 🔕 | [Start DND](apps/dnd-me/start-dnd-me.sh) | Starts DND via DND Me. The parameter has to be a menu item or slider equivalent: 15m, 30m, 1h, 2h, ..., 12h, next, next-hour, next-half-hour; it defaults to next. next-hour means the next 60m mark, next-half-hour means the next 30m mark and next means the first of the two. For example, if it's 9:22, next-hour means 10:00, next-half-hour means 9:30 and next means 9:30. | [Roland Leth](https://runtimesharks.com/projects/dnd-me) | ✅ | | |
- | 🔔 | [Stop DND](apps/dnd-me/stop-dnd-me.sh) | Stops DND via DND Me. | [Roland Leth](https://runtimesharks.com/projects/dnd-me) | | | |
+#### Devutils
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Backslash Escape/Unescape](apps/devutils/backslash.sh) | Escape (or unescape) backslashes in your current clipboard string | [DevUtils.app](https://devutils.app) | | | |
+ | | [Base64 Image Encode/Decode](apps/devutils/base64image.sh) | Decode the Base64 string in clipboard to an image (if it’s decodable) | [DevUtils.app](https://devutils.app) | | | |
+ | | [Base64 String Encode/Decode](apps/devutils/base64encode.sh) | Decode the Base64 string in clipboard (if it’s decodable) | [DevUtils.app](https://devutils.app) | | | |
+ | | [CSS Beautify/Minify](apps/devutils/cssformatter.sh) | Beautify or minify your current clipboard as CSS | [DevUtils.app](https://devutils.app) | | | |
+ | | [CSV to JSON](apps/devutils/csv2json.sh) | Convert your current clipboard from CSV to JSON | [DevUtils.app](https://devutils.app) | | | |
+ | | [Cron Job Parser](apps/devutils/cronparser.sh) | Parse the cron job expression in clipboard (if it’s a valid cron expression) | [DevUtils.app](https://devutils.app) | | | |
+ | | [ERB Beautify/Minify](apps/devutils/erbformatter.sh) | Beautify or minify your current clipboard as ERB | [DevUtils.app](https://devutils.app) | | | |
+ | | [HTML Beautify/Minify](apps/devutils/htmlformatter.sh) | Beautify or minify your current clipboard as HTML | [DevUtils.app](https://devutils.app) | | | |
+ | | [HTML Entity Encode/Decode](apps/devutils/htmlencode.sh) | Escape (or unescape) the HTML entities your current clipboard string | [DevUtils.app](https://devutils.app) | | | |
+ | | [HTML Preview](apps/devutils/htmlpreview.sh) | Show a HTML preview of your current clipboard string | [DevUtils.app](https://devutils.app) | | | |
+ | | [HTML to JSX](apps/devutils/html2jsx.sh) | Convert the HTML string in clipboard to JSX | [DevUtils.app](https://devutils.app) | | | |
+ | | [Hash Generator](apps/devutils/hashing.sh) | Calculate the hash of your current clipboard string | [DevUtils.app](https://devutils.app) | | | |
+ | | [JS Beautify/Minify](apps/devutils/jsformatter.sh) | Beautify or minify your current clipboard as JavaScript | [DevUtils.app](https://devutils.app) | | | |
+ | | [JSON Format/Validate](apps/devutils/jsonformatter.sh) | Format the JSON string currently in your clipboard (if it’s a valid JSON) | [DevUtils.app](https://devutils.app) | | | |
+ | | [JSON to CSV](apps/devutils/json2csv.sh) | Convert your current clipboard from JSON to CSV | [DevUtils.app](https://devutils.app) | | | |
+ | | [JSON to YAML](apps/devutils/json2yaml.sh) | Convert your current clipboard from JSON to YAML | [DevUtils.app](https://devutils.app) | | | |
+ | | [JWT Debugger](apps/devutils/jwt.sh) | Decode and verify the current JWT token in your clipboard | [DevUtils.app](https://devutils.app) | | | |
+ | | [LESS Beautify/Minify](apps/devutils/lessformatter.sh) | Beautify or minify your current clipboard as LESS | [DevUtils.app](https://devutils.app) | | | |
+ | | [Lorem Ipsum Generator](apps/devutils/loremipsum.sh) | Get some randomly generated lorem ipsum strings | [DevUtils.app](https://devutils.app) | | | |
+ | | [Markdown Preview](apps/devutils/markdownpreview.sh) | Preview the markdown string currently in your clipboard | [DevUtils.app](https://devutils.app) | | | |
+ | | [Number Base Converter](apps/devutils/numberbase.sh) | Convert numbers between bases (oct, hex, binary, etc.) | [DevUtils.app](https://devutils.app) | | | |
+ | | [QR Code Reader/Generator](apps/devutils/qrcode.sh) | Generate a QR code from your current clipboard string | [DevUtils.app](https://devutils.app) | | | |
+ | | [RegExp Tester](apps/devutils/regextester.sh) | Test your regular expression with a string and inspect matches, groups, etc. | [DevUtils.app](https://devutils.app) | | | |
+ | | [SCSS Beautify/Minify](apps/devutils/scssformatter.sh) | Beautify or minify your current clipboard as SCSS | [DevUtils.app](https://devutils.app) | | | |
+ | | [SQL Formatter](apps/devutils/sqlformatter.sh) | Format the SQL string currently in your clipboard | [DevUtils.app](https://devutils.app) | | | |
+ | | [String Case Converter](apps/devutils/stringcaseconverter.sh) | Convert a string in clipboard into various naming conventions | [DevUtils.app](https://devutils.app) | | | |
+ | | [String Inspector](apps/devutils/stringinspect.sh) | Inspect your current clipboard string (length, words count, unicode, etc.) | [DevUtils.app](https://devutils.app) | | | |
+ | | [Text Diff Checker](apps/devutils/textdiff.sh) | Compare two texts and find diff (per characters, words, lines, etc.) | [DevUtils.app](https://devutils.app) | | | |
+ | | [URL Encode/Decode](apps/devutils/urlencode.sh) | Decode the current URL string in your clipboard (if any) | [DevUtils.app](https://devutils.app) | | | |
+ | | [URL Parser](apps/devutils/querystringparser.sh) | Parse the URL string currently in your clipboard | [DevUtils.app](https://devutils.app) | | | |
+ | | [UUID/ULID Generate/Decode](apps/devutils/uuidtool.sh) | Decode the UUID in your clipboard (if any), or generate UUIDs | [DevUtils.app](https://devutils.app) | | | |
+ | | [Unix Time Converter](apps/devutils/unixtime.sh) | Parse and display UNIX the timestamp string currently in your clipboard | [DevUtils.app](https://devutils.app) | | | |
+ | | [XML Beautify/Minify](apps/devutils/xmlformatter.sh) | Beautify or minify your current clipboard as XML | [DevUtils.app](https://devutils.app) | | | |
+ | | [YAML to JSON](apps/devutils/yaml2json.sh) | Convert your current clipboard from YAML to JSON | [DevUtils.app](https://devutils.app) | | | |
+
+#### Dictionary
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Look up in Dictionary](apps/dictionary/look-up-in-dictionary.applescript) | Look up selected text in Dictionary | [yayiji](https://github.com/yayiji) | | | |
+
+#### Downie
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Download Video](apps/downie/download-video.sh) | Download video from Pasteboard link | [Clu Soh](https://twitter.com/designedbyclu) | | | |
#### Espanso
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create Text Expansion](apps/espanso/espanso-create-expansion.sh) | Add a text expansion to expanso | [Max Stoiber](https://github.com/mxstbr) | ✅ | | |
| | [Disable Espanso](apps/espanso/disable-espanso.sh) | N/A | [es183923](https://github.com/es183923) | | | |
| | [Enable Espanso](apps/espanso/enable-espanso.sh) | N/A | [es183923](https://github.com/es183923) | | | |
@@ -197,63 +341,137 @@ This repository contains sample commands and documentation to write your own one
| | [Start Espanso](apps/espanso/start-espanso.sh) | N/A | [es183923](https://github.com/es183923) | | | |
| | [Stop Espanso](apps/espanso/stop-espanso.sh) | N/A | [es183923](https://github.com/es183923) | | | |
+#### Eudic
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Look up Word](apps/eudic/look-up-in-eudic.applescript) | look up in eudic | [jingyi](https://jingyi.blog) | ✅ | | |
+
#### Evernote
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create Evernote](apps/evernote/create-note.applescript) | Creates a new Evernote. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
| | [Create Evernote Paste Clipboard](apps/evernote/create-note-paste-clipboard.applescript) | Creates a new Evernote, pastes in the contents of the clipboard, and positions the cursor in the title area. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
+#### ExpressVPN
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Connect](apps/expressvpn/expressvpn-connect.applescript) | N/A | [Amir Hossein SamadiPour](https://github.com/SamadiPour) | | | |
+ | | [Disconnect](apps/expressvpn/expressvpn-disconnect.applescript) | N/A | [Amir Hossein SamadiPour](https://github.com/SamadiPour) | | | |
+ | | [Reconnect](apps/expressvpn/expressvpn-reconnect.applescript) | N/A | [Amir Hossein SamadiPour](https://github.com/SamadiPour) | | | |
+
#### Fantastical
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create Event](apps/fantastical/create-event.applescript) | Create an event in Fantastical | [Robert Cooper](https://github.com/robertcoopercode) | ✅ | | |
| | [Create Task](apps/fantastical/create-todo-in-fantastical.applescript) | Speed up setting reminders for Fantastical by invoking this script. | [Vardan Sawhney](https://github.com/commai) | ✅ | | |
#### Ferdi
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Open Service by Index](apps/ferdi/ferdi-open-service-by-index.applescript) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Open Service by Name](apps/ferdi/ferdi-open-service-by-name.applescript) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
-#### Hazeover
+#### Find My
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Find My Phone (Auto Sound)](apps/find-my/fmp.js) | N/A | Raycast | | | |
+
+#### Focus
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Open Focus Preferences](apps/focus/focus-preferences.sh) | Open focus preferences. | [Ernest Ojeh](https://github.com/namzo) | | | |
+ | | [Start 25 minutes Focus Session](apps/focus/focus-start-session-25.sh) | Start a 25 minutes focus session. | [Ernest Ojeh](https://github.com/namzo) | | | |
+ | | [Start Custom Break](apps/focus/focus-start-custom-break.sh) | Start a custom break. If you don't enter any values, it uses the last break duration. | [Ernest Ojeh](https://github.com/namzo) | ✅ | | |
+ | | [Start Custom Focus Session](apps/focus/focus-start-custom-session.sh) | Start a custom focus session. If you don't enter any values, it starts an untimed focus session. | [Ernest Ojeh](https://github.com/namzo) | ✅ | | |
+ | | [Start Focus Session (Focus)](apps/focus/focus-start-session.sh) | Start an untimed focus session. | [Ernest Ojeh](https://github.com/namzo) | | | |
+ | | [Stop Break (Unbreak)](apps/focus/focus-stop-break.sh) | Stop break and continues the current focus session. | [Ernest Ojeh](https://github.com/namzo) | | | |
+ | | [Stop Focus Session (Unfocus)](apps/focus/focus-stop-session.sh) | Stop the current focus session. | [Ernest Ojeh](https://github.com/namzo) | | | |
+ | | [Take 5 Minutes Break](apps/focus/focus-start-break-5.sh) | Take 5 minutes break. | [Ernest Ojeh](https://github.com/namzo) | | | |
+ | | [Toggle Focus Session](apps/focus/focus-toggle-focus.sh) | Toggle between start session (untimed) and stop session. | [Ernest Ojeh](https://github.com/namzo) | | | |
+
+#### GoodLinks
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Open Last Unread Link](apps/goodlinks/goodlinks-last-unread-link.sh) | Open the last unread link in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | | | |
+ | | [Open Link](apps/goodlinks/goodlinks-open-link.sh) | Open a link in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | ✅ | | |
+ | | [Open Random Unread Link](apps/goodlinks/goodlinks-random-unread-link.sh) | Open a random unread link in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | | | |
+ | | [Save Link](apps/goodlinks/goodlinks-save-link.sh) | Saves a new link to GoodLinks | [Filip Chabik](https://github.com/hadret) | ✅ | | |
+ | | [Show Read List](apps/goodlinks/goodlinks-read-list.sh) | Show Read list in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | | | |
+ | | [Show Starred List](apps/goodlinks/goodlinks-starred-list.sh) | Show Starred list in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | | | |
+ | | [Show Tag](apps/goodlinks/goodlinks-tagged-links.sh) | Show links tagged with the specified tag in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | ✅ | | |
+ | | [Show Unread List](apps/goodlinks/goodlinks-unread-list.sh) | Show Unread list in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | | | |
+ | | [Show Untagged List](apps/goodlinks/goodlinks-untagged-list.sh) | Show Untagged list in the GoodLinks app | [Filip Chabik](https://github.com/hadret) | | | |
+
+#### HazeOver
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Set Intensity](apps/hazeover/hazeover-set-intensity.applescript) | Set dimming intensity of background windows. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | | |
| | [Toggle Dimming](apps/hazeover/hazeover-toggle-dimming.applescript) | Toggle dimming of all background windows. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
-#### Iconsur
+#### Hyper
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | 🅱️ | [Change Application Icon](apps/iconsur/iconsur.sh) | Change App icons to match Big Sur | [StevenRCE0](https://github.com/StevenRCE0) | ✅ | | |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Run Shell Command](apps/hyper/hyper-run-shell-command.applescript) | Run a terminal using Hyper | [Eliot Hertenstein](https://github.com/eIiot) | ✅ | | |
-#### Iterm
+#### Lungo
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | | [Run Shell Command](apps/iterm/iterm-run-shell-command.applescript) | N/A | [Andrei Borisov](https://github.com/andreiborisov) | ✅ | | |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Activate](apps/lungo/lungo-activate.sh) | Deactivate Lungo. | [Lungo](https://sindresorhus.com/lungo) | ✅ | | |
+ | | [Deactivate](apps/lungo/lungo-deactivate.sh) | Deactivate Lungo. | [Lungo](https://sindresorhus.com/lungo) | | | |
+ | | [Toggle](apps/lungo/lungo-toggle.sh) | Toggle Lungo. | [Lungo](https://sindresorhus.com/lungo) | ✅ | | |
#### Mail
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [CaptchaFromMail](apps/mail/copy-captcha-from-mail.py) | Copy the captcha from the emlx file. | [RealTong](https://raycast.com/RealTong) | | | |
| 📧 | [Copy Foreground Mail Deeplink](apps/mail/copy-foreground-mail-deeplink.applescript) | Copies the foreground Mail deeplink | [Jesse Claven](https://github.com/jesse-c) | | | |
-#### Meetingbar
+#### Medo
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Add Task](apps/medo/add-task.sh) | Add a new task | [Aayush ](https://github.com/Aayush9029) | ✅ | | |
+ | | [Medo Float](apps/medo/medo-float.sh) | Add a new task with priority | [Aayush ](https://github.com/Aayush9029) | | | |
+ | | [Medo Float Large](apps/medo/medo-float-large.sh) | Add a new task with priority | [Aayush ](https://github.com/Aayush9029) | | | |
+ | | [Medo Float Small](apps/medo/medo-float-small.sh) | Add a new task with priority | [Aayush ](https://github.com/Aayush9029) | | | |
+
+#### MeetingBar
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create Meeting](apps/meetingbar/meetingbar-create-meeting.applescript) | Create a new meeting. | [Jakub Lanski](https://github.com/jaklan) | | | |
| | [Join Meeting](apps/meetingbar/meetingbar-join-meeting.applescript) | Join the ongoing or upcoming meeting. | [Jakub Lanski](https://github.com/jaklan) | | | |
+#### MenubarX
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Close Last Tab](apps/menubarx/close-last-menubarx-tab.sh) | Close last viewed tab in MenubarX | [Clu Soh](https://twitter.com/designedbyclu) | | | |
+ | | [Open Tabs](apps/menubarx/open-tab-in-menubar.applescript) | Open X Tab in your menubar | [Clu Soh](https://twitter.com/designedbyclu) | ✅ | | |
+ | | [Open in MenubarX](apps/menubarx/open-in-menubarx.sh) | Open Pasteboard link in MenubarX | [Clu Soh](https://twitter.com/designedbyclu) | | | |
+
+#### Message
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Copy Code](apps/Message/copycode.sh) | Copy verification code from a message. | [Fatpandac](https://github.com/Fatpandac) | | | |
+
#### Mullvad
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Connect](apps/mullvad/connect.sh) | Connect the Mullvad VPN tunnel using the most recent configuration settings. | [Phil Salant](https://github.com/PSalant726) | | | |
| | [Connect to Location](apps/mullvad/location.sh) | Connect the Mullvad VPN tunnel using the specified location. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
| | [Disconnect](apps/mullvad/disconnect.sh) | Disconnect from the Mullvad VPN tunnel. | [Phil Salant](https://github.com/PSalant726) | | | |
@@ -261,17 +479,17 @@ This repository contains sample commands and documentation to write your own one
| | [Reconnect](apps/mullvad/reconnect.sh) | Force the client to reconnect to the Mullvad VPN tunnel. | [Phil Salant](https://github.com/PSalant726) | | | |
| | [Search Countries, Cities, and Hostnames](apps/mullvad/search.sh) | Search the list of available entities to which a Mullvad VPN tunnel connection can be made. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
-#### Noteplan3
+#### NotePlan3
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Append To Daily Note](apps/noteplan3/noteplan-append-daily-note.sh) | Append to daily note | [Göran Damberg](https://github.com/gdamberg) | ✅ | | |
| | [New Note From Clipboard](apps/noteplan3/noteplan-new-note-from-clipboard.sh) | Create a new note from clipboard | [Göran Damberg](https://github.com/gdamberg) | ✅ | | |
#### Notes
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Append Content From Clipboard](apps/notes/append-note-from-clipboard.applescript) | Script to append to an existing note content from clipboard. | [Ayoub Gharbi](https://github.com/ayoub-g) | ✅ | | |
| | [Create Note](apps/notes/create-note.applescript) | Create a new Note | [Vardan Sawhney](https://github.com/commai) | ✅ | | |
| | [Create Note From Clipboard](apps/notes/create-note-from-clipboard.applescript) | Create Note From Clipboard | [Ayoub Gharbi](https://github.com/ayoub-g) | ✅ | | |
@@ -281,28 +499,35 @@ This repository contains sample commands and documentation to write your own one
#### Obsidian
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create Note](apps/obsidian/obsidian-create-note.template.sh) | Create a new note | [Yiyao Wei](https://github.com/HotThoughts) | ✅ | ✅ | |
| | [Search in Vault](apps/obsidian/obsidian-search-vault.template.sh) | Search Obsidian Vault | [Yiyao Wei](https://github.com/HotThoughts) | ✅ | ✅ | |
-#### Openvpn
+#### One Thing
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Clear Text](apps/one-thing/one-thing-clear-text.sh) | Clear the text shown in One Thing app. | [One Thing](https://sindresorhus.com/one-thing) | | | |
+ | | [Set Text](apps/one-thing/one-thing-set-text.sh) | Set the text shown in One Thing app. | [One Thing](https://sindresorhus.com/one-thing) | ✅ | | |
+
+#### OpenVPN
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Connect OpenVPN](apps/openvpn/connect-openvpn.applescript) | Prepares OpenVPN Connect client to connect or reconnect. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
| | [Disconnect OpenVPN](apps/openvpn/disconnect-openvpn.applescript) | Disconnects the OpenVPN Connect client from VPN. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
| | [Quit OpenVPN](apps/openvpn/quit-openvpn.applescript) | Quits the OpenVPN Connect client. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
-#### Phpstorm
+#### PhpStorm
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Update Recent Projects](apps/phpstorm/recent-projects.sh) | N/A | Raycast | | | |
#### Plash
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Add Website](apps/plash/plash-add-website.sh) | Add a website to Plash. | [Plash](https://github.com/sindresorhus/Plash) | ✅ | | |
| | [Next Website](apps/plash/plash-next-website.sh) | Switch to the next website in the list in Plash. | [Plash](https://github.com/sindresorhus/Plash) | | | |
| | [Previous Website](apps/plash/plash-previous-website.sh) | Switch to the previous website in the list in Plash. | [Plash](https://github.com/sindresorhus/Plash) | | | |
@@ -313,23 +538,42 @@ This repository contains sample commands and documentation to write your own one
#### Playground
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🕊 | [Create Basic](apps/playground/open-new-playground.py) | Create and open a new basic Swift Playground | [Quentin Eude](https://github.com/qeude) | ✅ | | |
| 🕊 | [Create View Based](apps/playground/open-new-view-playground.py) | Create and open a new view based Swift Playground | [Quentin Eude](https://github.com/qeude) | ✅ | | |
#### Pulse Secure
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Connect / Reconnect](apps/pulse-secure/pulse-secure-connect.applescript) | Connect to the given / default connection with the given / default username. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Disconnect / Cancel](apps/pulse-secure/pulse-secure-disconnect.applescript) | Disconnect / cancel the active connection. | [Jakub Lanski](https://github.com/jaklan) | | | |
| | [Resume](apps/pulse-secure/pulse-secure-resume.applescript) | Resume the suspended connection. | [Jakub Lanski](https://github.com/jaklan) | | | |
| | [Suspend](apps/pulse-secure/pulse-secure-suspend.applescript) | Suspend the active connection. | [Jakub Lanski](https://github.com/jaklan) | | | |
+#### Quip
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Set up Quip commands](apps/quip/set-up-quip-commands.py) | Create script commands for creating Quip documents, based on the configuration in quip_config.ini. | [diego_zamboni](https://raycast.com/diego_zamboni) | | | |
+ | | [{{commandtitle}}](apps/quip/quip-new.template.py) | Configure your Quip API token and other defaults in quip_config.ini | [zzamboni](https://raycast.com/zzamboni) | ✅ | ✅ | |
+
+#### Raycast
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🎉 | [Celebrate](apps/raycast/celebrate.sh) | Set Confetti to run for a number of times and during intervals | [Fatpandac](https://github.com/Fatpandac) | ✅ | | |
+
+#### Reminders
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Add Reminder](apps/reminders/reminders-create-reminder.sh) | Add a new reminder. | [Andrei Nedelcu](https://dinosaurgame.net) | ✅ | | |
+
#### Safari
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Add Item to Reading List](apps/safari/safari-create-reading-list-item.applescript) | Add a new Reading List item with the given URL. Allows a custom title to be specified. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | | |
| | [Clear Cache and Refresh Page](apps/safari/safari-clear-cache-reload.applescript) | This script clears cache and reloads the page of the frontmost Safari window. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
| | [Close All Tabs](apps/safari/safari-close-all-tabs.applescript) | Close all tabs in the frontmost window | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
@@ -337,51 +581,53 @@ This repository contains sample commands and documentation to write your own one
| | [Close Other Tabs](apps/safari/safari-close-other-tabs.applescript) | Close all tabs besides the currently active tab. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
| | [Close Tabs to the Left](apps/safari/safari-close-tabs-left.applescript) | Close all tabs to the left side of the currently active tab. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
| | [Close Tabs to the Right](apps/safari/safari-close-tabs-right.applescript) | Close all tabs to the right side of the currently active tab. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
+ | | [Download Current URL](apps/safari/safari-download-url.applescript) | Download the currently active tab's URL. | [Michael Bianco](https://github.com/iloveitaly) | | | |
| | [Duplicate Tab](apps/safari/safari-duplicate-tab.applescript) | Duplicates and opens the currently active tab. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
+ | | [Open Bing with Edge User-Agent](apps/safari/safari-bing-edge-user-agent.applescript) | Open Bing in Safari with Edge User-Agent | [smxl](https://github.com/smxl) | | | |
| | [Open Safari URL in Chrome](apps/safari/safari-current-page-url-in-chrome.applescript) | Open current Safari URL in new tab in Chrome | [Dave Lehman](https://github.com/dlehman) | | | |
| | [Open Safari URL in Firefox](apps/safari/safari-current-page-url-in-firefox.applescript) | Open current Safari URL in new tab in Firefox | [Dave Lehman](https://github.com/dlehman) | | | |
-#### Script Kit
-
-| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | | [Import scripts from Script Kit](apps/script-kit/import-scripts-from-script-kit.py) | Convert all Script Kit scripts to Raycast Script Commands | [Achille Lacoin](https://github.com/pomdtr) | | | |
-
#### Session
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Abandon Session](apps/session/session-abandon.sh) | Starts a focus session in Session app | [James Lyons](https://github.com/jamesjlyons) | | | |
| | [Finish Session](apps/session/session-finish.sh) | Finishes a focus session in Session app | [James Lyons](https://github.com/jamesjlyons) | | | |
| | [Pause Session](apps/session/session-pause.sh) | Starts a focus session in Session app | [James Lyons](https://github.com/jamesjlyons) | | | |
| | [Start Previous Session](apps/session/session-start-previous.sh) | Starts a focus session in Session app with the previous intent and duration | [James Lyons](https://github.com/jamesjlyons) | | | |
| | [Start Session](apps/session/session-start-new.sh) | Starts a focus session in Session app | [James Lyons](https://github.com/jamesjlyons) | ✅ | | |
-#### Sidenotes
+#### SideNotes
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [SideNotes create](apps/sidenotes/sidenotes-create-note.applescript) | Create a new note within the selected or the first SideNotes folder. | [Marcel Bochtler](https://github.com/MarcelBochtler) | ✅ | | |
#### Sip
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [ Add Color to History](apps/sip/sip-add-hex-color.sh) | Add a color to your Sip history. | [Sip](https://twitter.com/sip_app/) | ✅ | | |
| | [Check Contrast](apps/sip/sip-check-contrast-hex.sh) | Open Sip Contrast Checker. | [Sip](https://twitter.com/sip_app/) | ✅ | | |
| | [Open Contrast Checker](apps/sip/sip-open-check-contrast.sh) | Open Sip Contrast Checker. | [Sip](https://twitter.com/sip_app/) | | | |
| | [Show Color Picker](apps/sip/sip-show-picker.sh) | Pick a color value from your screen. | [Sip](https://twitter.com/sip_app/) | | | |
-#### Spotify
+#### Stickies
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | | [Create Spotify Command](apps/spotify/create-spotify-command.js) | Create Spotify Shortcut Command from the Spotify URL that's in your clipboard | [Nichlas W. Andersen](https://twitter.com/nichlaswa) | ✅ | | |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [New Floating Sticky Note](apps/stickies/new-floating-sticky.applescript) | This script creates a new floating note in the Apple Stickies application | [Annie Ma](http://www.anniema.co/) | | | |
+
+#### Sublime
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Open with Sublime](apps/sublime/open-with-sublime.applescript) | Open currently focused directory in Sublime | [Rock Hu](https://twitter.com/0xRock) | | | |
#### Surfshark
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Surfshark VPN Status](apps/surfshark/surfshark-vpn-status.sh) | Get Surfshark VPN status | [Jordi Clement](https://github.com/jordicl) | | | |
| | [VPN Connect](apps/surfshark/surfshark-vpn-start.sh) | Start Surfshark VPN connection | [Jordi Clement](https://github.com/jordicl) | | | |
| | [VPN Disconnect](apps/surfshark/surfshark-vpn-stop.sh) | Stop Surfshark VPN connection | [Jordi Clement](https://github.com/jordicl) | | | |
@@ -389,32 +635,45 @@ This repository contains sample commands and documentation to write your own one
#### Tailscale
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Connect](apps/tailscale/tailscale-connect.sh) | Connects to Tailscale | [Ross Zurowski](https://github.com/rosszurowski) | | | |
| | [Disconnect](apps/tailscale/tailscale-disconnect.sh) | Disconnects from Tailscale | [Ross Zurowski](https://github.com/rosszurowski) | | | |
| | [Get IP](apps/tailscale/tailscale-ip.sh) | Gets your private Tailscale IP | [Ross Zurowski](https://github.com/rosszurowski) | | | |
- | | [Switch Account](apps/tailscale/tailscale-switch.sh) | Switches Tailscale networks | [Ross Zurowski](https://github.com/rosszurowski) | | | |
+ | | [Switch Account](apps/tailscale/tailscale-switch.sh) | Switches Tailscale networks | [Ross Zurowski](https://github.com/rosszurowski) and [Daniel Schoemer](https://github.com/quatauta) | | | |
+
+#### Terminal Translate
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 📖 | [Translate](apps/terminal-translate/translate.sh) | Translate word or sentence. | [Fatpandac](https://github.com/Fatpandac) | ✅ | | |
#### Things
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create To-Do](apps/things/things-create-todo.sh) | Create a new To-Do with title and optional deadline. | [Things](https://twitter.com/culturedcode/) | ✅ | | |
| | [Current To-Do](apps/things/things-current-todo.applescript) | Show your current To-Do to stay focused. | [Things](https://twitter.com/culturedcode/) | | | |
| | [Search To-Dos](apps/things/things-search-to-dos.sh) | Search To-Dos with a query. | [Things](https://twitter.com/culturedcode/) | ✅ | | |
| | [Today](apps/things/things-today.applescript) | Get an overview of your completed tasks for today. | [Things](https://twitter.com/culturedcode/) | | | |
+#### Timing
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Start Timer](apps/timing/timing-start-timer.js) | Start a timer | [Landen Danyluk](https://github.com/landendanyluk) | ✅ | | |
+ | | [Stop Timer](apps/timing/timing-stop-timer.js) | Stop the active timer | [Landen Danyluk](https://github.com/landendanyluk) | | | |
+
#### Todoist
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | | [Create Task](apps/todoist/create-task.template.sh) | Creates Todoist task | [Faris Aziz](https://github.com/farisaziz12) | ✅ | ✅ | |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Create Task](apps/todoist/create-task.template.sh) | Create Task | [Faris Aziz](https://github.com/farisaziz12) | ✅ | ✅ | |
| | [Get Tasks](apps/todoist/get-tasks.template.sh) | Gets All Todoist tasks | [Faris Aziz](https://github.com/farisaziz12) | | ✅ | |
#### Translate Shell
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🌍 | [Translate Shell](apps/translate-shell/translate-shell-language-pair.py) | Translate text using translate-shell. | [Marcel Bochtler](https://github.com/MarcelBochtler) | ✅ | | |
| 📖 | [Translate to EN](apps/translate-shell/translate-to-en.sh) | Translate and copy brief translation to clipboard. | [tiancheng92](https://github.com/tiancheng92) | ✅ | | |
| 📖 | [Translate to ZH](apps/translate-shell/translate-to-zh.sh) | Translate and copy brief translation to clipboard. | [tiancheng92](https://github.com/tiancheng92) | ✅ | | |
@@ -422,13 +681,13 @@ This repository contains sample commands and documentation to write your own one
#### Trello
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create Card](apps/trello/create-trello-card.template.py) | Create a new Trello card | [Michael Francis](https://github.com/mikefrancis) | ✅ | ✅ | |
-#### Tunnelblick
+#### TunnelBlick
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Tunnelblick: Connect](apps/tunnelblick/tunnelblick-connect.applescript) | Connect a VPN configuration. | [Achille Lacoin](https://github.com/pomdtr) | ✅ | | |
| | [Tunnelblick: Connect All](apps/tunnelblick/tunnelblick-connect-all.applescript) | Connect all unconnected VPN configurations. | [Achille Lacoin](https://github.com/pomdtr) | | | |
| | [Tunnelblick: Disconnect](apps/tunnelblick/tunnelblick-disconnect.applescript) | Disconnect a VPN configuration. | [Achille Lacoin](https://github.com/pomdtr) | ✅ | | |
@@ -437,96 +696,147 @@ This repository contains sample commands and documentation to write your own one
#### Viscosity
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Viscosity: Connect](apps/viscosity/viscosity-connect.applescript) | Connect a VPN viscosity configuration. | [Luigi Cardito (credits Achille Lacoin https://github.com/pomdtr)](https://github.com/lcardito) | ✅ | | |
| | [Viscosity: Connect All](apps/viscosity/viscosity-connect-all.applescript) | Connect all unconnected VPN configurations. | [Luigi Cardito (credits Achille Lacoin https://github.com/pomdtr)](https://github.com/lcardito) | | | |
| | [Viscosity: Disconnect](apps/viscosity/viscosity-disconnect.applescript) | Disconnect a VPN configuration. | [Luigi Cardito (credits Achille Lacoin https://github.com/pomdtr)](https://github.com/lcardito) | ✅ | | |
| | [Viscosity: Disconnect All](apps/viscosity/viscosity-disconnect-all.applescript) | Disconnect all connected VPN configurations. | [Luigi Cardito (credits Achille Lacoin https://github.com/pomdtr)](https://github.com/lcardito) | | | |
+#### WARP
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Connect](apps/warp/warp-start.sh) | Create a connection to WARP | [Sergey Fuksman](https://github.com/fuksman) | | | |
+ | | [Disconnect](apps/warp/warp-stop.sh) | Disconnect from WARP | [Sergey Fuksman](https://github.com/fuksman) | | | |
+ | | [Reauthenticate](apps/warp/warp-reauth.sh) | Force WARP reauthentication | [Daniils Petrovs](https://github.com/danirukun) | | | |
+ | | [Toggle WARP](apps/warp/warp-toggle.sh) | Toggle Connection | [Sergey Fuksman](https://github.com/fuksman) | | | |
+ | | [WARP Status](apps/warp/warp-status.sh) | Check WARP connection | [Sergey Fuksman](https://github.com/fuksman) | | | |
+
+#### WebStorm
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Open](apps/webstorm/open-workspace.template.sh) | Open WebStorm projects | [Daniel Stovv](https://github.com/stovv) | ✅ | ✅ | |
+
#### Wikipedia
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Wikipedia Search](apps/wikipedia/wikipedia-search.py) | Search Wikipedia and display the result in Raycast | [Juan I. Serra](https://twitter.com/jiserra) | ✅ | | |
#### Y Pomodoro
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🍅 | [Pause](apps/y-pomodoro/pause.sh) | Pause active pomodoro timer using [y-pomodoro](https://github.com/jesse-c/y-pomodoro) | [Jesse Claven](https://github.com/jesse-c) | | | |
| 🍅 | [Resume](apps/y-pomodoro/resume.sh) | Resume active pomodoro timer using [y-pomodoro](https://github.com/jesse-c/y-pomodoro) | [Jesse Claven](https://github.com/jesse-c) | | | |
| 🍅 | [Show](apps/y-pomodoro/show.sh) | Show active pomodoro timer using [y-pomodoro](https://github.com/jesse-c/y-pomodoro) | [Jesse Claven](https://github.com/jesse-c) | | | |
| 🍅 | [Start](apps/y-pomodoro/start.sh) | Start a pomodoro timer using [y-pomodoro](https://github.com/jesse-c/y-pomodoro) | [Jesse Claven](https://github.com/jesse-c) | | | |
| 🍅 | [Stop](apps/y-pomodoro/stop.sh) | Stop active pomodoro timer using [y-pomodoro](https://github.com/jesse-c/y-pomodoro) | [Jesse Claven](https://github.com/jesse-c) | | | |
-## Bookmarks
+#### iTerm
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | 📜 | [Open Script Commands Repository](bookmarks/open-script-commands-repository.sh) | Open the GitHub repository for Script Commands provided by the community. | Raycast | | | |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🤖 | [Open profile](apps/iterm/iterm-open-profile-in-new-window.applescript) | N/A | [sunrisewestern](https://github.com/sunrisewestern) | ✅ | | |
+ | | [Run Shell Command](apps/iterm/iterm-run-shell-command.applescript) | N/A | [Andrei Borisov](https://github.com/andreiborisov) | ✅ | | |
+
+#### iconsur
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🅱️ | [Change Application Icon](apps/iconsur/iconsur.sh) | Change App icons to match Big Sur | [StevenRCE0](https://github.com/StevenRCE0) | ✅ | | |
## Browsing
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🐔 | [Convert Twitter to Nitter](browsing/convert-twitter-to-nitter.js) | Convert Twitter link to Nitter | [cSharp](https://github.com/noidwasavailable) | | | |
| 🧭 | [Copy Current Page URL](browsing/safari-current-page-url.sh) | This script copies URL of currently opened page in Safari into clipboard. | [Kirill Gorbachyonok](https://github.com/japanese-goblinn) | | | |
| 🧭 | [Copy Current Page URL](browsing/chrome-current-page-url.sh) | This script copies URL of currently opened page in Google Chrome into clipboard. | [Jakub Lanski](https://github.com/jaklan) | | | |
| 🧭 | [Copy Current Window URLs](browsing/safari-current-window-urls.applescript) | This script copies to clipboard all URLs from frontmost Safari window. | [Kirill Gorbachyonok](https://github.com/japanese-goblinn) | | | |
+ | | [Create Short URL](browsing/shlink-create-short-url.template.sh) | Create a short URL using Shlink | [Eliot Hertenstein](https://github.com/eIiot) | ✅ | ✅ | |
+ | 🥽 | [Current Website to Private Browser](browsing/to-private-browsing.sh) | Open the current site in a private browser | [raulanatol](https://github.com/raulanatol) | | | |
| | [Go to Outline](browsing/go-to-outine.sh) | Open the website at Outline | [Ronan Rodrigo Nunes](https://ronanrodrigo.dev) | ✅ | | |
+ | 🌐 | [New Browser Window](browsing/new-browser-window.sh) | Open new window in default browser | [Levi Nelson](https://github.com/LeviticusNelson) | | | |
+ | 📚 | [Open Multiple Websites on Safari](browsing/open-multiple-websites-on-safari.template.sh) | Open multiple websites on Safari using list of URLs | [Yasutaka Nishii](https://github.com/ystknsh) | | ✅ | |
+ | 🤖 | [Open in guest profile](browsing/open-in-guest-profile.sh) | Open current website in guest profile/mode | [JD Solanki](https://github.com/jd-solanki) | | | |
+ | | [Open without CORS](browsing/open-chrome-without-cors.sh) | Open chrome with web security option disabled. | [Tahsin Yazkan](https://github.com/thsnyzkn) | | | |
| | [Peek a link](browsing/peekalink.template.sh) | Use [Peekalink.io](https://peekalink.io) API to peek specified URL. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | ✅ | |
| 🖼️ | [Screenshot Website](browsing/website-screenshots.sh) | Takes screenshots of the entered URL using [`pageres`](https://github.com/sindresorhus/pageres) and saves it to the Desktop. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| 🔗 | [Shorten URL From Clipboard](browsing/shorten-url.sh) | Shorten the URL in your Clipboard with Tiny URL. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
+ | | [Shorten URL from GitHub](browsing/git-io.sh) | Shorten any github.com URL | [Astrit](https://github.com/astrit) | | | |
| 🔗 | [Shorten URL with Bitly](browsing/shorten-url-bitly.template.sh) | Transform the clipboard contents to a short Bitly URL | [Nitin Gupta](https://twitter.com/gniting) | | ✅ | |
+ | 🔗 | [Shorten URL with Emojis](browsing/short-url-emoji.sh) | Transform the clipboard contents to a short Emoji URL | [Samuel Henry](https://bne.sh) | | | |
+ | 📹 | [Youtube Shorts in video player](browsing/Youtube Shorts in video player.sh) | Opens current Youtube Shorts video in the normal video player by replacing "/shorts/" with "/v/" in the url. | [Kailash Yellareddy](https://github.com/kyellareddy) | | | |
## Communication
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🔐 | [2FA from iMessages](communication/imessage-2fa.sh) | Get most recent two-factor authentication code from iMessages. | [Caleb Stauffer](https://github.com/crstauf) and [Thiago Holanda](https://twitter.com/tholanda) | | | |
+ | 📱 | [Call with iPhone](communication/call-with-iphone.sh) | Place a telephone call via your iPhone on Wi-Fi. | [Alexander JH Steffen](https://github.com/alexjsteffen) | ✅ | | |
| 🔐 | [Generate Passphrase](communication/xkcdpass.sh) | Use [xkcdpass](https://github.com/redacted/XKCD-password-generator) to create a passphrase. | [Caleb Stauffer](https://github.com/crstauf) | | | |
+ | 🤡 | [Let Me Google That](communication/let-me-google-that.sh) | Let Me Google That For You | [Leo Fritsch](https://github.com/leofritsch) | | | |
| 🗣 | [Say](communication/say.sh) | Convert text to audible speech. | [Felipe Turcheti](https://felipeturcheti.com) | ✅ | | |
| | [Share Secret from Clipboard](communication/share-secret-doppler.py) | Share secret securely using https://share.doppler.com/. | [Petr Nikolaev](https://github.com/PitNikola) | ✅ | | |
#### Cloudup
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Paste](communication/cloudup/cloudup-paste.sh) | Upload clipboard contents to [Cloudup](https://cloudup.com/). | [Caleb Stauffer](https://github.com/crstauf) | | | |
| | [Pick](communication/cloudup/cloudup-pick.sh) | Open file dialog and upload to [Cloudup](https://cloudup.com/). | [Caleb Stauffer](https://github.com/crstauf) | | | |
| | [Upload](communication/cloudup/cloudup-upload.sh) | Upload path or URL in clipboard to [Cloudup](https://cloudup.com/). | [Caleb Stauffer](https://github.com/crstauf) | | | |
+#### DuckDuckGo Email Protection
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Configure](communication/duckduckgo-email-protection/configure-@duck.com-script-command.applescript) | Use this script command to configure your @duck.com authorizationID | [Rediwed](github.com/Rediwed) | ✅ | | |
+ | | [Generate Unique Address](communication/duckduckgo-email-protection/generate-unique-email-address.applescript) | This script command generates a unique private @duck.com email address. | [Rediwed](github.com/Rediwed) | | | |
+
#### Emojis
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🎲 | [Random Emoji](communication/emojis/random-emoji.sh) | Copy a random emoji to the clipboard. | [Tomohiro Nishimura](https://github.com/Sixeight) | | | |
| 📙 | [Search Emojis](communication/emojis/emojis-search.sh) | Search for emojis related to input. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| 📙 | [Search and Copy First Related Emoji](communication/emojis/emoji-copy.sh) | Copy first emoji related to input. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
#### Gmail
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Gmail](communication/gmail/google-gmail.sh) | Open gmail.com in the default browser | [Michael Aigner](https://github.com/tonka3000) | | | |
#### Google Meet
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Open Google Meet](communication/google-meet/meet.sh) | Start a Google Meet session | [Mujib Azizi](https://github.com/mujibazizi) | | | |
+#### Mail
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | ✉️ | [Open Most Recent Email](communication/mail/open-most-recent-email.applescript) | Open the last received email in your inbox in Mail.app | [Ben Yoon](https://github.com/benyn) | | | |
+
#### Messenger
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Open Conversation](communication/messenger/messenger-open-conversation.applescript) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
#### Slack
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | ⏰ | [Add Reminder](communication/slack/add-slack-reminder.template.sh) | Create a Slack reminder | [Zeb Pykosz](https://github.com/zebapy) | ✅ | ✅ | |
| | [Clear Slack DND](communication/slack/clear-slack-DND-status.sh) | Clear DND Status in Slack | [Sam Ching](https://github.com/samching) | | | |
| 🧼 | [Clear Status](communication/slack/clear-slack-status.template.sh) | Clear your status in Slack. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | ✅ | |
| | [Jump to...](communication/slack/slack-jump-to.applescript) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
+ | | [Launch Dev Mode](communication/slack/slack-dev-mode.sh) | Open Slack with the Developer Menu enabled. ⌘⌥I to access the Developer Menu. If you find it's not working, quit Slack and run this command again. | [Cody Carrell](https://raycast.com/sourcecody) | | | |
| | [Open Workspace by Index](communication/slack/slack-open-workspace-by-index.applescript) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Open Workspace by Name](communication/slack/slack-open-workspace-by-name.applescript) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Send Message in Channel](communication/slack/slack-send-message.applescript) | This script posts a message text to a slack channel and sets active status (defaults to random good morning message in #general) | [Faris Aziz](https://github.com/farisaziz12) | ✅ | | |
@@ -538,23 +848,35 @@ This repository contains sample commands and documentation to write your own one
#### Zoom
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Leave Meeting](communication/zoom/leave-meeting.applescript) | Leaves Current Zoom meeting | [Faris Aziz](https://github.com/farisaziz12) | | | |
+ | | [Rename Profile](communication/zoom/rename-profile.applescript) | Rename your profile in Zoom Meeting App (Mac Only) and cliclick. | [Leo Voon](https://github.com/leovoon) | ✅ | | |
| | [Toggle Microphone](communication/zoom/toggle-mic.applescript) | Mute/Unmute your microphone in the current meeting | [Luigi Cardito](https://github.com/lcardito) and [Faris Aziz](https://github.com/farisaziz12) | | | |
| | [Toggle Video](communication/zoom/toggle-video.applescript) | Show/Hide your microphone in the current meeting | [Luigi Cardito](https://github.com/lcardito) and [Faris Aziz](https://github.com/farisaziz12) | | | |
## Conversions
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 📋 | [Clipboard to Markdown](conversions/clipboard-to-markdown.js) | Automatically take the content found in the clipboard and turn it into Markdown | [Alessandra Pereyra](https://github.com/alessandrapereyra) | | | |
| 🎨 | [Color Conversion](conversions/color-conversion.sh) | Convert color formats (e.g. #FFEEFF -> rgba(255,238,255,1) | [quelhasu](https://github.com/quelhasu) | ✅ | | |
| 🗂 | [Column to Comma](conversions/column-to-comma.sh) | Converts column to comma separated list. | Raycast | | | |
| ⏱ | [Convert Epoch to Human-Readable Date](conversions/epoch-to-human-date.sh) | Convert epoch to human-readable date. | [Siyuan Zhang](https://github.com/kastnerorz) | ✅ | | |
+ | 📋 | [Convert Google Docs Rich Text HTML to Markdown](conversions/google-docs-to-markdown.sh) | A script to take the HTML pastboard type filled by google docs and convert it to nicely formatted markdown | [Michael Bianco](https://github.com/iloveitaly) | | | |
| ⏱ | [Convert Human-Readable Date To Epoch](conversions/human-date-to-epoch.sh) | Convert human-readable date to timestamp epoch. | [Siyuan Zhang](https://github.com/kastnerorz) | ✅ | | |
+ | 🔄 | [Convert Markdown to Telegram Format](conversions/markdown-to-telegram.py) | Convert Markdown formatting to Telegram format, excluding processing inside code blocks or quotes | [Maxim Borzov](https://github.com/borzov) | | | |
+ | 📋 | [Convert Raw HTML to Rich Text on Clipboard](conversions/raw-html-to-rich-text-clipboard.sh) | This script will convert raw HTML on your clipboard to rich text. It requires pandoc to be installed on your system. | [Michael Bianco](https://github.com/iloveitaly) | | | |
| 📹 | [Create GIF from video](conversions/create-gif-from-video.py) | Create a GIF from video, by default it takes the last screen record video | [Quentin Eude](https://github.com/qeude) | ✅ | | |
| 🎨 | [Hex to RGB](conversions/hex-to-rgb.sh) | Convert hexadecimal color value to RGB value. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| 🎨 | [Hex to RGBA](conversions/hex-to-rgba.sh) | Convert hexadecimal color value to RGBA value. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
+ | 🧱 | [Markdown Table](conversions/create-markdown-table.js) | Create a markdown table template | [Ryan Nystrom](https://github.com/rnystrom) | ✅ | | |
+ | 📋 | [OCR Image](conversions/clipboard-ocr.sh) | OCR Image from Clipboard | [xxchan](https://github.com/xxchan) | | | |
+ | 📋 | [Paste and Match Style](conversions/paste-as-plain-text.applescript) | A script to click the "Paste and Match Style" menu item, even if it's disabled | [Michael Bianco](https://github.com/iloveitaly) | | | |
+ | | [QR Code Generation](conversions/qrcode-generate.sh) | QR Code Generation | [wyhaya](https://github.com/wyhaya) | ✅ | | |
| 📝 | [Rich Text to Markdown](conversions/rich-text-clipboard-to-markdown.sh) | Convert rich text clipboard data to GitHub Flavored Markdown using Pandoc | [Adam Zethraeus](https://github.com/adam-zethraeus) | | | |
+ | | [Screenshot QR Code to Clipboard](conversions/qr-code-screenshot-to-text.sh) | Decode QR Code from screenshot to clipboard using https://qrserver.com/ | [Diego Lopes](https://github.com/Dihgg) | | | |
+ | 🔗 | [Simple Markdown Link Generator](conversions/inputs-to-markdown-link.sh) | Quickly and simply generate a markdown formatted link with your specified URL and title. | [atzzCokeK](https://github.com/atzzCokeK) | ✅ | | |
+ | 📝 | [Space Fixer](conversions/space-fixer.sh) | Add spaces between Chinese and English, number or symbols. | [RealTong](https://raycast.com/RealTong) | | | |
| 🔠 | [Strikethrough Text](conversions/strikethrough.sh) | Converts given text (or clipboard if no argument) to t̶e̶x̶t̶ | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| ✂️ | [Trim Newlines and Tabs](conversions/trim-newlines-tabs.sh) | Trim newlines and tabs from clipboard content. | [Caleb Stauffer](https://github.com/crstauf) | | | |
| 🦸♀️ | [Unicode Superscript](conversions/unicode-superscript.sh) | Convert clipboards text to fake unicode superscript | [Adam Zethraeus](https://github.com/adam-zethraeus) | ✅ | | |
@@ -566,7 +888,7 @@ This repository contains sample commands and documentation to write your own one
#### Change Case
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Camel Case](conversions/change-case/camelcase.py) | Change to clipboard text to camel case | [Robert Cooper](https://github.com/robertcoopercode) | | | |
| | [Kebab Case](conversions/change-case/kebabcase.py) | Change to clipboard text to kebab case | [Robert Cooper](https://github.com/robertcoopercode) | | | |
| | [Lowercase](conversions/change-case/lowercase.py) | Change clipboard text to lowercase | [Robert Cooper](https://github.com/robertcoopercode) | | | |
@@ -574,37 +896,75 @@ This repository contains sample commands and documentation to write your own one
| | [Title Case](conversions/change-case/titlecase.py) | Change to clipboard text to title case | [Robert Cooper](https://github.com/robertcoopercode) | | | |
| | [Uppercase](conversions/change-case/uppercase.py) | Change to clipboard text to uppercase | [Robert Cooper](https://github.com/robertcoopercode) | | | |
+## Culture
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🕌 | [Prayer Times](culture/prayer-times.sh) | Prayer Times grabbed from the aladhan.com. | [Emircan Erkul](https://emircanerkul.com) | | | |
+
## Dashboard
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Bitcoin Price](dashboard/bitcoin-price-usd.sh) | Get current Bitcoin price from Coindesk. | [Tanguy Le Stradic](https://github.com/tanguyls) | | | |
+ | 💲 | [Check Usage of OpenAI API](dashboard/open-ai-usage.sh) | Get total usage of OpenAI API | [nagauta](https://github.com/nagauta) | | | |
| 💰 | [Crypto](dashboard/crypto-portfolio.py) | Gets crypto prices from Binance | [Manan Mehta](https://github.com/mehtamanan) | | | |
| 🌦️ | [Current Weather](dashboard/current-weather.sh) | Get current weather report from [wttr.in](https://wttr.in/). | [Caleb Stauffer](https://github.com/crstauf) | | | |
| | [DOGE Price](dashboard/doge.sh) | Checking DOGE coin price | [Clu Soh](https://github.com/designedbyclu) | | | |
| | [Ethereum Price](dashboard/ethereum-price-usd.sh) | Get current Ethereum price from CoinGecko. | [Clark Dinnison](https://github.com/cdinnison) | | | |
+ | | [Fear Index](dashboard/fear-index.sh) | Fear & Greed Index from CNN | [Astrit](https://github.com/astrit) | | | |
| | [Metals Price](dashboard/precious-metals.sh) | Retrieves the value of precious metals per 1 oz | [Stefan de Graaf](https://github.com/DBZFYAM) | | | |
| | [NextDNS Status](dashboard/nextdns-status-check.py) | Check if this machine is using NextDNS. | [Phil Salant](https://github.com/PSalant726) | | | |
| 🤖 | [SABnzbd Queue](dashboard/sabnzbd-queue-status.template.sh) | Show SABnzbd's queue status | [Jesse Claven](https://github.com/jesse-c) | | ✅ | |
| | [Speedtest](dashboard/speedtest.sh) | Test download and upload connection speed using [Speedtest](https://www.speedtest.net/apps/cli). | [Caleb Stauffer](https://github.com/crstauf) | | | |
| 📈 | [Stocks](dashboard/stock-portfolio.rb) | Keep track of your stock portfolio. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
| 📈 | [System Activity](dashboard/system-activity.sh) | N/A | Raycast | | | |
+ | 🚘 | [Tesla](dashboard/tesla.template.sh) | Get the status of your Tesla vehicle | [Mortada Sarheed](https://github.com/mSarheed) | | ✅ | |
| | [Twitter Statistics](dashboard/twitter-statistics.template.rb) | Shows the followers, favorites and friends count of your Twitter account. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | ✅ | |
| 🕐 | [World Time](dashboard/world-time.sh) | Show the time from elsewhere in the world | [Jesse Claven](https://github.com/jesse-c) | | | |
| ⏱ | [Year Progress](dashboard/year-progress.sh) | See the year progress on your desktop. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
+ | | [YouTube Statistics](dashboard/youtube-statistics.template.rb) | Shows YouTube Subscribers, Views and Videos | [Astrit](https://github.com/astrit) | | ✅ | |
#### Countdowns
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🎅🏻 | [Countdown to Christmas](dashboard/countdowns/countdown-to-christmas.sh) | See how many days until Christmas. | [Valentin Chrétien](https://github.com/valentinchrt) | | | |
| ⏱ | [Countdown to Date](dashboard/countdowns/countdown-to-date.template.sh) | See how many days/hours until a specific date. | [Valentin Chrétien](https://github.com/valentinchrt) | | ✅ | |
| ⏱ | [Create Countdown](dashboard/countdowns/create-countdown.template.sh) | Create countdowns via Raycast. | [Valentin Chrétien](https://github.com/valentinchrt) | ✅ | ✅ | |
+#### Firebase
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Get Authorization Token](dashboard/firebase/firebase-authentication-get-token.template.sh) | Get token from Firebase Authentication service | [João Melo](https://github.com/joaopcm) | | ✅ | |
+ | | [Get data from Firebase](dashboard/firebase/firebase-realtime-db-get-data.template.sh) | Get values from Firebase Realtime Database | [Marek Mašek](https://github.com/marekmasek) | | ✅ | |
+
+#### Mood Meter
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | ☕️ | [Add Mood](dashboard/mood-meter/add-mood.js) | Add mood value to current or specified date | [Federico Miraglia](https://github.com/Mitra98t) | ✅ | | |
+ | ☕️ | [Display Mood Month](dashboard/mood-meter/display-mood-month.js) | Displays month mood table | [Federico Miraglia](https://github.com/Mitra98t) | | | |
+ | ☕️ | [Display Mood Year](dashboard/mood-meter/display-mood-year.js) | Displays year mood table | [Federico Miraglia](https://github.com/Mitra98t) | ✅ | | |
+
+#### Open Weather
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | ⛅️ | [Current Weather](dashboard/open-weather/weather-current.template.sh) | Get current weather from OpenWeather | [Marek Mašek](https://github.com/marekmasek) | | ✅ | |
+ | ⛅️ | [Weather Forecast](dashboard/open-weather/weather-forecast.template.sh) | Get weather forecast from OpenWeather | [Marek Mašek](https://github.com/marekmasek) | | ✅ | |
+
+## Dashboards
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 💾 | [Speed Test](dashboards/iperf-speed-test.template.sh) | Runs an iPerf Speed Test. | [Sam Wright](https://raycast.com/samywamy10) | | ✅ | |
+
## Developer Utils
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🔑 | [Add SSH Keys (with Terminal)](developer-utils/add-ssh-keys.template.applescript) | Add one or multiple SSH keys to your SSH agent (with Terminal). | [Caleb Stauffer](https://github.com/crstauf) | | ✅ | |
| 🤖 | [Base Converter](developer-utils/base-converter.sh) | Utility to convert numbers between bases. Can be one number or a list of string-delimited numbers. | [Saimir S.](https://www.saimirsulaj.com) | ✅ | | |
| 🔓 | [Base64 Decode](developer-utils/base64-decode-input.sh) | Decode the base64 string | [Bin Hua](https://github.com/hzb) | ✅ | | |
@@ -613,13 +973,16 @@ This repository contains sample commands and documentation to write your own one
| 🧹 | [Clear All Related Junk](developer-utils/clear_xcode.sh) | This script clears all Xcode related junk. | [Kirill Gorbachyonok](https://github.com/japanese-goblinn) | | | |
| 🧹 | [Clear Derived Data](developer-utils/clear-derived-data.sh) | Clear the derived data of Xcode. | Raycast | | | |
| ⏱️ | [Copy Current Epoch Unix Timestamp](developer-utils/unix-timestamp.sh) | Copy the current epoch Unix timestamp. | [Caleb Stauffer](https://github.com/crstauf) | | | |
+ | 📁 | [Copy Focused Finder Window Path](developer-utils/copy-focused-finder-window-path.sh) | Copies full path of the currently focused Finder window | [Vishal Telangre](https://github.com/vishaltelangre) | | | |
| 📝 | [Copy Lorem Ipsum](developer-utils/lorem-ipsum.sh) | Copy one paragraph of Lorem Ipsum to clipboard. | Raycast | | | |
+ | 🔑 | [Copy SSH Public Key](developer-utils/copy-ssh-public-key.sh) | Copying the default SSH public key to the clipboard | [Angelos Michalopoulos](https://github.com/miagg) | | | |
| 🤖 | [Count Characters Bash](developer-utils/count-characters.sh) | Counts the characters of either the clipboard or the passed argument | es183923 | ✅ | | |
| 🤐 | [Create .gitignore](developer-utils/generate-git-ignore.sh) | Generates a .gitignore file via https://gitignore.io | [Roland Leth](https://runtimesharks.com) | ✅ | | |
| | [Create Image from Code](developer-utils/create-image-from-code.sh) | Create beautiful images of your code with https://ray.so | [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | | |
| 💻 | [Decode Base64](developer-utils/decode-base64.sh) | Decodes clipboard content to Base64 and copies it again. | Raycast | | | |
| | [Decode JWT](developer-utils/decode-jwt.sh) | Decodes JSON web token from the clipboard. | Raycast | | | |
| 💻 | [Decode URL](developer-utils/decode-url.sh) | Decodes clipboard content url and copies it again. | Raycast | | | |
+ | ⌨️ | [Delete Current Line](developer-utils/delete-current-line.applescript) | This script deletes the line at cursor position. | [Annie Ma](http://www.anniema.co/) | | | |
| 🌍 | [Dig](developer-utils/dig.sh) | Perform a dig command with the specified options | Tommaso Panozzo | ✅ | | |
| 💻 | [Encode Base64](developer-utils/encode-base64.sh) | Encodes clipboard content to Base64 and copies it again. | Raycast | | | |
| 💻 | [Encode URL](developer-utils/encode-url.sh) | Encodes clipboard content url and copies it again. | Raycast | | | |
@@ -629,14 +992,17 @@ This repository contains sample commands and documentation to write your own one
| | [Format Swift](developer-utils/format-swift.sh) | Use [swiftformat](https://github.com/nicklockwood/SwiftFormat) to format clipboard content. | [Dean Moore](https://github.com/moored) | | | |
| | [Generate Password](developer-utils/genpasswd.py) | Generates an iOS style password | [everdrone](https://github.com/everdrone) | ✅ | | |
| 🔐 | [Generate Password](developer-utils/generate-password.sh) | Generates a random password and copies it to the clipboard. | [Sven Hofmann](https://github.com/hofmannsven) | | | |
+ | 💻 | [Generate ULID](developer-utils/generate-ulid.sh) | Generates a ULID and copies it to the clipboard. | [David Molinero](https://github.com/doktor500) | | | |
| 💻 | [Generate UUID](developer-utils/generate-uuid.sh) | Generates a UUID and copies it to the clipboard. | Raycast | | | |
+ | 🕐 | [Get TTFB (Time to First Byte)](developer-utils/get-ttfb.sh) | Get the TTFB (Time to First Byte) of a website | [Angelos Michalopoulos](https://github.com/miagg) | ✅ | | |
| 🧹 | [Ignore Package Folders](developer-utils/ignore-package-folders-time-machine.template.sh) | Ignore package folders (node_modules, Pods, etc) from Time Machine backups. They might not be big in size (altough they do add up), but they usually have tens of thousands of files, making backups slower than they should be. Many files are worse than big files when copying. You can also add a Spotlight comment to each file, to easily be able to exclude the same folders from Spotlight indexing (disabled by default). | [Roland Leth](https://runtimesharks.com) | | ✅ | |
- | 🩺 | [Is It Up?](developer-utils/is-it-up.sh) | Check if a website is up | [Jesse Claven](https://github.com/jesse-c) | ✅ | | |
+ | 🌐 | [Is It Up?](developer-utils/is-it-up.sh) | Check if a website is up | [Jesse Claven](https://github.com/jesse-c) | ✅ | | |
| | [JSON to Go Struct](developer-utils/json-to-go-struct.sh) | Convert the copied JSON into a golang structure. | [tiancheng92](https://github.com/tiancheng92) | ✅ | | |
+ | 🛠 | [Join Clipboard Lines by Delimiter](developer-utils/join-lines.sh) | Join multiple lines of text from the clipboard into a single line, separated by a specified delimiter. | [decaylala](https://github.com/decaylala) | ✅ | | |
| 💻 | [Json Stringify Text](developer-utils/json-stringify-text.js) | Get JSON-formatted text | Senthil Prabhu | | | |
| 🔐 | [MD5 Hash](developer-utils/md5-hash.sh) | Hashing any text data by using MD5 | [Bin Hua](https://github.com/hzb) | ✅ | | |
+ | | [Microlink API](developer-utils/microlink.sh) | Microlink API integration | [Kiko Beats](https://github.com/kikobeats) | ✅ | | |
| 🔗 | [Open Deep Link](developer-utils/open-link-simulator.applescript) | Opens a URL inside the currently booted iOS Simulator. Can be used to open deeplinks | [Tomás Martins](https://github.com/tfmart) | ✅ | | |
- | | [Open Directory](developer-utils/open-folder-in-vscode.applescript) | Opens current topmost directory in VSCode | [chohner](https://github.com/chohner) | | | |
| 🌐 | [Ping](developer-utils/ping.sh) | Ping an IP address or URL. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| 🌐 | [Ping Monitor](developer-utils/ping-monitor.template.sh) | Ping an IP address or URL on an interval. | [Caleb Stauffer](https://github.com/crstauf) | | ✅ | |
| 💻 | [Prettify JSON](developer-utils/prettify-json.sh) | Pretty prints the JSON currently in the clipboard. | Raycast | | | |
@@ -652,21 +1018,26 @@ This repository contains sample commands and documentation to write your own one
| 🔐 | [Strong Password Generator](developer-utils/strong-password-generator.sh) | Generate a strong password of requested character length | [Nitin Gupta](https://twitter.com/gniting) | ✅ | | |
| 🕒 | [Time Between Dates](developer-utils/time-between-dates.js) | Given two dates returns the time between them in multiple units of measure. | [Federico Miraglia](https://github.com/Mitra98t) | ✅ | | |
| 🕒 | [Time Calculator](developer-utils/time-calculator.js) | Add or Subtract specified amount of time from given date. | [Federico Miraglia](https://github.com/Mitra98t) | ✅ | | |
+ | 🔒 | [Toggle SSH SOCKS Tunnel](developer-utils/toggle_ssh_proxy_tunnel.template.sh) | Toggles an SSH SOCKS proxy tunnel on and off. | [Andrii Barabash](https://github.com/AndriiBarabash) | | ✅ | |
| 🔠 | [Transform Case](developer-utils/transform-case.sh) | Transform the case of clipboard content. Defaults to lower case if no conversion type is specified. | [Nitin Gupta](https://twitter.com/gniting) | ✅ | | |
| ✂ | [Trim Git Commit Hash](developer-utils/trim-git-commit-hash.sh) | Trim full git commit hash down to seven characters. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| 🔗 | [Unshorten URL](developer-utils/unshorten-url.sh) | Unshortens clipboard content url and copies the result again. | [Nikita Galaiko](https://github.com/ngalaiko) | | | |
+ | 📖 | [View Scripting Dictionary](developer-utils/view-scripting-dictionary.sh) | Opens the Scripting Dictionary for the given application, defaulting to the active application if none is provided. | [Stephen Kaplan](https://github.com/SKaplanOfficial) | ✅ | | |
| 🌐 | [Whois](developer-utils/whois.sh) | Whois of URL. | [Caleb Stauffer](https://github.com/crstauf) and [Ronan Rodrigo Nunes](https://ronanrodrigo.dev) | ✅ | | |
#### Aws
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🤖 | [Find AWS Region by IP](developer-utils/aws/whatismyregion.sh) | Copies the AWS IPv4 to the clipboard. | [Oğuzhan Yılmaz](https://github.com/c1982) | | | |
+ | | [S3 Download](developer-utils/aws/amazon-s3-download.sh) | Download from Amazon S3 via URL | [Chris Cook](https://github.com/zirkelc) | ✅ | | |
+ | | [Single Sign-On](developer-utils/aws/aws-sso-util.sh) | Login to AWS using aws-sso-util | [David Molinero](https://github.com/doktor500) | | | |
#### Brew
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🍺 | [Cask Upgrade](developer-utils/brew/brew-cask-upgrade.sh) | Updates brew and upgrades every outdated app | [LanikSJ](https://github.com/LanikSJ) | | | |
| 🍺 | [Doctor](developer-utils/brew/brew-doctor.sh) | Run Brew Doctor | [Thiago Holanda](https://twitter.com/tholanda) | | | |
| 🍺 | [Install a package](developer-utils/brew/brew-install.sh) | Installs specified brew package. | [Alex Zotov](https://github.com/lex4hex) | ✅ | | |
| 🍺 | [Leaves](developer-utils/brew/brew-leaves.sh) | Show list of installed brew formulae that are not dependencies of other installed formula. | [owpac](https://github.com/Owpac) | | | |
@@ -676,28 +1047,31 @@ This repository contains sample commands and documentation to write your own one
| 🍺 | [Services List](developer-utils/brew/brew-services-list.sh) | Show Brew Services List | [Thiago Holanda](https://twitter.com/tholanda) | | | |
| 🍺 | [Start Service](developer-utils/brew/brew-services-start.sh) | Start Service in Brew | [Thiago Holanda](https://twitter.com/tholanda) | ✅ | | |
| 🍺 | [Stop Service](developer-utils/brew/brew-services-stop.sh) | Stop Service in Brew | [Thiago Holanda](https://twitter.com/tholanda) | ✅ | | |
+ | 🍺 | [Uninstall](developer-utils/brew/brew-uninstall-application.sh) | Uninstalls an Specified Application Using Homebrew | [StevenRCE0](https://github.com/StevenRCE0) | ✅ | | |
| 🍺 | [Update](developer-utils/brew/brew-update.sh) | Run Brew Update | [chengzhiqi](https://twitter.com/1872Fate) | | | |
| 🍺 | [Upgrade](developer-utils/brew/brew-upgrade.sh) | Run Brew Upgrade | [Thiago Holanda](https://twitter.com/tholanda) | | | |
#### Cloudflare
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Purge Cloudflare cache](developer-utils/cloudflare/purge-cloudflare-cache.template.sh) | Purge Cloudflare cache for zone. | [Caleb Stauffer](https://github.com/crstauf) | | ✅ | |
#### Docker
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🧹 | [Clean](developer-utils/docker/clean-docker.sh) | Script that cleans Docker images, volumes, and containers | Quentin Eude | | | |
| | [List Containers](developer-utils/docker/docker-ps.sh) | List containers in Docker | Sebastian Kroll | | | |
| | [List Images](developer-utils/docker/docker-images.sh) | List images in Docker | Sebastian Kroll | | | |
+ | ▶️ | [Run](developer-utils/docker/run-docker.sh) | Runs a Docker container | Fabián Delgado | ✅ | | |
+ | ⏹️ | [Stop](developer-utils/docker/stop-docker.sh) | Stops a Docker container | Fabián Delgado | ✅ | | |
| | [System Prune](developer-utils/docker/docker-system-prune.sh) | Remove unused data (system prune) | Sebastian Kroll | | | |
#### Git
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Clear Changes](developer-utils/git/git-clear-changes.sh) | Clear all changes | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
| | [Save Changes](developer-utils/git/git-save-changes.sh) | Commit all pending changes. If no commit message is provided, it will amend the changes. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | | |
| | [Standup](developer-utils/git/git-standup.sh) | Lists your commits from the last 24 hours. Optionally specify since when, e.g. "1 week". | [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | | |
@@ -705,23 +1079,26 @@ This repository contains sample commands and documentation to write your own one
| | [Switch Branch](developer-utils/git/git-switch-branch.sh) | Switch to a new branch. If not name was provided, it checks out the default branch. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | | |
| | [Sync Changes](developer-utils/git/git-sync-changes.sh) | Pulls, rebases and pushes your changes. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
-#### Github
+#### GitHub
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Create GitHub Gist from Clipboard](developer-utils/github/create-github-gist.template.sh) | Create a GitHub Gist from clipboard contents and copy Gist URL. | [Caleb Stauffer](https://github.com/crstauf) | | ✅ | |
+ | | [GitHub Contributions](developer-utils/github/github-contributions.template.sh) | Show GitHub user contributions from the current year | [Astrit](https://github.com/astrit) | | ✅ | |
| | [Open Commit History](developer-utils/github/github-open-commit-history.sh) | Opens the commit history of the filepath in the clipboard or the frontmost window. Alternatively can open the file view on GitHub. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
| | [Open Pull Requests](developer-utils/github/github-open-pull-requests.template.rb) | Display number of open pull requests | [Faye Sipiano](https://github.com/FSipiano) | | ✅ | |
| | [Open Pull Requests page](developer-utils/github/github-open-pull-requests-page.sh) | Open your GitHub pull requests page | [Faye Sipiano](https://github.com/FSipiano) | | | |
| ⭐️ | [Repository Statistics](developer-utils/github/github-repository-stars.template.rb) | Show statistics of your GitHub repository. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | ✅ | |
+ | ⭐️ | [Repository Statistics](developer-utils/github/github-repository-stars_all_repos_template.rb) | Show statistics of your GitHub repositories. | [Valdir Junior](https://github.com/valdirjunior011 ) | | ✅ | |
| | [Show Open Pull Requests](developer-utils/github/github-open-pull-requests-details.template.rb) | Display (detailed) GitHub pull requests | [Faye Sipiano](https://github.com/FSipiano) | | ✅ | |
+ | | [Show Review Requests](developer-utils/github/github-review-requests.template.rb) | Display number of Pull Requests requesting your review | [Vince Picone](https://github.com/vpicone) | | ✅ | |
| | [Unread Notifications](developer-utils/github/github-unread-notifications.template.sh) | Display (detailed) number of unread GitHub notifications. | [Caleb Stauffer](https://github.com/crstauf) | | ✅ | |
| | [Visit a Repository, Pull Request, or Issue](developer-utils/github/open-gh-repo-pr-or-issue.sh) | Open a repository, pull request, or issue on GitHub | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
-#### Gitlab
+#### GitLab
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Issues](developer-utils/gitlab/gitlab-issues.template.py) | Show issues from GitLab | [Michael Aigner](https://github.com/tonka3000) | | ✅ | |
| | [Merge Requests](developer-utils/gitlab/gitlab-mergerequests.template.py) | Show merge requests from GitLab | [Michael Aigner](https://github.com/tonka3000) | | ✅ | |
| | [To-Dos](developer-utils/gitlab/gitlab-todos.template.py) | Show todos from GitLab | [Michael Aigner](https://github.com/tonka3000) | | ✅ | |
@@ -729,7 +1106,7 @@ This repository contains sample commands and documentation to write your own one
#### Google
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Lighthouse](developer-utils/google/google-lighthouse.sh) | Open a [Lighthouse](https://developers.google.com/web/tools/lighthouse/) report of URL. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| | [PageSpeed Insights - Desktop](developer-utils/google/google-psi-desktop.sh) | Run a [PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/) analysis on desktop of URL. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| | [PageSpeed Insights - Mobile](developer-utils/google/google-psi-mobile.sh) | Run a [PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/) analysis on mobile of URL. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
@@ -737,7 +1114,7 @@ This repository contains sample commands and documentation to write your own one
#### Ip
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🌐 | [External IPv4](developer-utils/ip/get-external-ip-v4.sh) | Copies the external IPv4 to the clipboard. | Raycast | | | |
| 🌐 | [External IPv6](developer-utils/ip/get-external-ip-v6.sh) | Copies the external IPv6 to the clipboard. | Raycast | | | |
| 🌐 | [Local IPv4](developer-utils/ip/get-local-ip-v4.sh) | Copies the local IPv4 to the clipboard. | Raycast | | | |
@@ -745,25 +1122,44 @@ This repository contains sample commands and documentation to write your own one
| 🌐 | [URL IPv4](developer-utils/ip/get-url-ip-v4.sh) | Get IPv4 address of URL. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| 🌐 | [URL IPv6](developer-utils/ip/get-url-ip-v6.sh) | Get IPv6 address of URL. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
+#### Minikube
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | ⚙️ | [Config Set](developer-utils/minikube/minikube-config-set.sh) | Pause Minikube cluster | [Daniils Petrovs](https://danpetrov.xyz) | ✅ | | |
+ | ⏸ | [Pause](developer-utils/minikube/minikube-pause.sh) | Pause Minikube cluster | [Daniils Petrovs](https://danpetrov.xyz) | | | |
+ | 🚀 | [Start](developer-utils/minikube/minikube-start.sh) | Start Minikube cluster | [Daniils Petrovs](https://danpetrov.xyz) | | | |
+ | ℹ️ | [Status](developer-utils/minikube/minikube-status.sh) | Show Minikube cluster status | [Daniils Petrovs](https://danpetrov.xyz) | | | |
+ | 🤖 | [Stop](developer-utils/minikube/minikube-stop.sh) | Stops a running Minikube cluster | [Daniils Petrovs](https://danpetrov.xyz) | | | |
+ | ⏸ | [Unpause](developer-utils/minikube/minikube-unpause.sh) | Pause Minikube cluster | [Daniils Petrovs](https://danpetrov.xyz) | | | |
+
#### Sentry
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Unresolved Issues](developer-utils/sentry/sentry-unresolved-issues.template.py) | Show unresolved issues of the last 24 hours from Sentry. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | ✅ | |
| | [Unresolved Issues By Project](developer-utils/sentry/sentry-unresolved-issues-by-project.template.py) | Show unresolved issues in the last 24 hours (by project) from Sentry. | [Phil Salant](https://github.com/PSalant726) and [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | ✅ | |
-## Google Maps
+#### Vscode
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Open Directory](developer-utils/vscode/open-folder-in-vscode.applescript) | Opens current topmost directory in VS Code | [chohner](https://github.com/chohner) | | | |
+ | | [Open Project](developer-utils/vscode/open-project-in-vscode.sh) | Finds path to the given directory which must be a VS Code or Git project and opens it with VS Code | [Maksim Zemlyanikin](https://github.com/Maksimka101) | ✅ | | |
+
+#### Xcode
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | | [Search Google Maps](google-maps/google-maps.sh) | N/A | Raycast | ✅ | | |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Last Project](developer-utils/xcode/xcode-last-project.sh) | Open the last Xcode project | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Recent Project](developer-utils/xcode/xcode-recent-project.sh) | Open recent Xcode project | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
## Home
#### Elgato
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Decrease Brightness](home/elgato/elgato-key-light-decrease-brightness.template.rb) | Decrease brightness of Elgato Key Light by 5%. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | ✅ | |
| | [Increase Brightness](home/elgato/elgato-key-light-increase-brightness.template.rb) | Increase brightness of Elgato Key Light by 5%. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | ✅ | |
| | [Turn Off](home/elgato/elgato-key-light-turn-off.template.rb) | Turn off Elgato Key Light. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | ✅ | |
@@ -772,27 +1168,35 @@ This repository contains sample commands and documentation to write your own one
#### Philips Hue
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | 💡 | [Lights](home/philips-hue/hue-lights-inline.template.mjs) | Show inline summary of any Hue compatible lights. Choose to show on/off, brightness percentage, color temperature or hue, saturation, brightness values. Recommended to have already assigned names to lights in the Hue app. | [Jono Hewitt](https://github.com/jonohewitt) | | ✅ | zx |
- | 💡 | [Rooms](home/philips-hue/hue-rooms-inline.template.mjs) | Show inline summary about your rooms of Hue compatible lights. Choose to show the number of lights on out of the room total, or use more general terms such as "All on". Requires rooms to have already been set up in the Hue app. | [Jono Hewitt](https://github.com/jonohewitt) | | ✅ | zx |
- | 💡 | [Set Light Bulb](home/philips-hue/hue-bulb.template.mjs) | Set a specified or default individual color bulb to a preset, hsb or brightness value. Leave preset and value arguments empty to toggle a bulb on or off. | [Jono Hewitt](https://github.com/jonohewitt) | ✅ | ✅ | zx |
- | 💡 | [Set Room Lights](home/philips-hue/hue-room.template.mjs) | Set a specified or default room of color bulbs to a preset, hsb or brightness value. Leave preset and value arguments empty to toggle a room on or off. | [Jono Hewitt](https://github.com/jonohewitt) | ✅ | ✅ | zx |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 💡 | [Lights](home/philips-hue/hue-lights-inline.template.mjs) | Show inline summary of any Hue compatible lights. Choose to show on/off, brightness percentage, color temperature or hue, saturation, brightness values. Recommended to have already assigned names to lights in the Hue app. | [Jono Hewitt](https://github.com/jonohewitt) | | ✅ | |
+ | 💡 | [Rooms](home/philips-hue/hue-rooms-inline.template.mjs) | Show inline summary about your rooms of Hue compatible lights. Choose to show the number of lights on out of the room total, or use more general terms such as "All on". Requires rooms to have already been set up in the Hue app. | [Jono Hewitt](https://github.com/jonohewitt) | | ✅ | |
+ | 💡 | [Set Light Bulb](home/philips-hue/hue-bulb.template.mjs) | Set a specified or default individual color bulb to a preset, hsb or brightness value. Leave preset and value arguments empty to toggle a bulb on or off. | [Jono Hewitt](https://github.com/jonohewitt) | ✅ | ✅ | |
+ | 💡 | [Set Room Lights](home/philips-hue/hue-room.template.mjs) | Set a specified or default room of color bulbs to a preset, hsb or brightness value. Leave preset and value arguments empty to toggle a room on or off. | [Jono Hewitt](https://github.com/jonohewitt) | ✅ | ✅ | |
## Math
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Calculate CAGR Percentage](math/calculate-CAGR.sh) | Calculate the CAGR between "from" and "to" values over given "years," then copy the result. | [Samuel Barton](https://github.com/samueldbarton) | ✅ | | |
| 📈 | [Calculate Growth %](math/calculate-growth.sh) | Calculate percentage increase between "from" and "to" values. | [Petr Nikolaev](https://github.com/pitnikola) | ✅ | | |
+ | 🔢 | [Generate Random Number](math/random-number.sh) | Generate a number between a given range (inclusive) and then copy the value | [Matt Gleich](https://mattglei.ch) | ✅ | | |
+ | 🧮 | [LaTeX Calculator](math/latex-calculator.py) | Evaluate LaTeX expressions and get the product copied to your clipboard | [Matt Gleich](https://mattglei.ch) | ✅ | | |
| | [Wolfram Alpha](math/wolfram-alpha.template.sh) | Use Wolfram Alpha to answer your query | [es183923](https://github.com/es183923) | ✅ | ✅ | |
+ | | [nCr: Calculate Combinations](math/calculate-combinations.js) | nCr: Calculate combinations | [cSharp](https://github.com/noidwasavailable) | ✅ | | |
## Media
#### Apple Music
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Apple Music Volume Down](media/apple-music/apple-music-volume-down.applescript) | N/A | [Juan I. Serra](https://github.com/jiserra) | | | |
+ | | [Apple Music Volume Up](media/apple-music/apple-music-volume-up.applescript) | N/A | [Juan I. Serra](https://github.com/jiserra) | | | |
| | [Current Track](media/apple-music/apple-music-current-track.applescript) | Show currently playing track in Music. | [mmerle](https://github.com/mmerle) | | | |
| | [Go to Artist in Apple Music](media/apple-music/apple-music-go-to-artist-page.sh) | Go to Artist page in the Apple Music App | [Jordi Clement](https://github.com/jordicl) | ✅ | | |
+ | | [Hate Current Track](media/apple-music/apple-music-hate-current-track.applescript) | Let the algorithm know how you feel about the currently playing track. | [Bryan Schuetz](https://github.com/bryanschuetz) | | | |
+ | | [Love Current Track](media/apple-music/apple-music-love-current-track.applescript) | Let the algorithm know how you feel about the currently playing track. | [Bryan Schuetz](https://github.com/bryanschuetz) | | | |
| | [Next Track](media/apple-music/apple-music-next.applescript) | Next track in Music. | [Caleb Stauffer](https://github.com/crstauf) | | | |
| | [Pause](media/apple-music/apple-music-pause.applescript) | Pause Music. | [Caleb Stauffer](https://github.com/crstauf) | | | |
| | [Play](media/apple-music/apple-music-play.applescript) | Play Music. | [Caleb Stauffer](https://github.com/crstauf) | | | |
@@ -806,7 +1210,7 @@ This repository contains sample commands and documentation to write your own one
#### Apple Tv
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Pause](media/apple-tv/apple-tv-pause.applescript) | Pause TV. | [Caleb Stauffer](https://github.com/crstauf) | | | |
| | [Play](media/apple-tv/apple-tv-play.applescript) | Play TV. | [Caleb Stauffer](https://github.com/crstauf) | | | |
| | [Play Movie](media/apple-tv/apple-tv-play-movie.applescript) | Play specified movie from library in TV. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
@@ -816,7 +1220,7 @@ This repository contains sample commands and documentation to write your own one
#### Cmus
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| ℹ️ | [Current Track](media/cmus/track-info.sh) | Shows info on the current track if cmus is running | [mmerle](https://github.com/mmerle) | | | |
| ⏩ | [Next Track](media/cmus/next-track.sh) | Goes forward a track if cmus is running | [mmerle](https://github.com/mmerle) | | | |
| ⏪ | [Previous Track](media/cmus/previous-track.sh) | Goes back a track if cmus is running | [mmerle](https://github.com/mmerle) | | | |
@@ -824,10 +1228,56 @@ This repository contains sample commands and documentation to write your own one
| 🔁 | [Toggle Repeat](media/cmus/toggle-repeat.sh) | Toggles the repeat option if cmus is running | [mmerle](https://github.com/mmerle) | | | |
| 🔀 | [Toggle Shuffle](media/cmus/toggle-shuffle.sh) | Toggles the shuffle option if cmus is running | [mmerle](https://github.com/mmerle) | | | |
+#### Endel
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Deep Focus](media/endel/endel-deep-focus.sh) | Set deep focus mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Deep Work](media/endel/endel-scenarios-deepwork.sh) | Run Deep Work scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Focus](media/endel/endel-focus.sh) | Set focus mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Homework](media/endel/endel-scenarios-homework.sh) | Run Homework scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Lullaby](media/endel/endel-lullaby.sh) | Set AI lullaby mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Meditate](media/endel/endel-scenarios-meditate.sh) | Run Meditate scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Power Nap](media/endel/endel-scenarios-powernap.sh) | Run Power Nap scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Read](media/endel/endel-scenarios-read.sh) | Run Read scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Recovery](media/endel/endel-recovery.sh) | Set recovery mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Relax](media/endel/endel-relax.sh) | Set relax mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Self Care](media/endel/endel-scenarios-selfcare.sh) | Run Self Care scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Set Alarm](media/endel/endel-alarm.sh) | Set Alarm in Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Set Timer](media/endel/endel-timer.sh) | Set Timer in Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Sleep](media/endel/endel-sleep.sh) | Set focus mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Study](media/endel/endel-study.sh) | Set study mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Unwind](media/endel/endel-scenarios-unwind.sh) | Run Unwind scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Wiggly Wisdom](media/endel/endel-wisdom.sh) | Set wiggly wisdom mode at Endel | [Sergey Korobyin](https://github.com/huangsemao) | | | |
+ | | [Workout](media/endel/endel-scenarios-workout.sh) | Run Workout scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+ | | [Yoga](media/endel/endel-scenarios-yoga.sh) | Run Yoga scenario at Endel | [Sergey Korobyin](https://github.com/huangsemao) | ✅ | | |
+
+#### Lowfi
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Lowfi](media/lowfi/lowfi.sh) | N/A | Raycast | | | |
+
+#### Sonos
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Play Favorite](media/sonos/sonos-play-favorite.sh) | Play from Sonos favorites. | [David Blackman](https://github.com/whizziwig) | ✅ | | |
+ | | [Set Volume](media/sonos/sonos-volume-set.sh) | Sets volume of Sonos. | [David Blackman](https://github.com/whizziwig) | ✅ | | |
+ | | [Volume Down](media/sonos/sonos-volume-down.sh) | Raises volume of Sonos. | [David Blackman](https://github.com/whizziwig) | | | |
+ | | [Volume Up](media/sonos/sonos-volume-up.sh) | Raises volume of Sonos. | [David Blackman](https://github.com/whizziwig) | | | |
+
+#### Speaker Setup
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🔊 | [Speaker Setup](media/speaker-setup/speaker-setup.sh) | N/A | [Kailash Yellareddy](https://github.com/kyellareddy) | | | |
+
#### Spotify
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [${commandName}](media/spotify/create-spotify-command.js) | Play ${commandName} on Spotify | [Nichlas Wærnes Andersen](https://twitter.com/nichlaswa) | ✅ | | |
| | [Copy Current Playing Song URL](media/spotify/spotify-now-playing-url.applescript) | Get link to current Spotify playing song | [Jack LaFond](https://github.com/jacc) | | | |
| | [Current Track](media/spotify/spotify-current-track.applescript) | Show currently playing track in Spotify. | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
| | [Next Track](media/spotify/spotify-next-track.applescript) | Skips to the next track in Spotify. | Raycast | | | |
@@ -837,10 +1287,29 @@ This repository contains sample commands and documentation to write your own one
| | [Previous Track](media/spotify/spotify-previous-track.applescript) | Skips to the previous track in Spotify. | Raycast | | | |
| | [Toggle Play/Pause](media/spotify/spotify-play-pause.applescript) | Toggles play or pause of current track in Spotify. | Raycast | | | |
+#### Tidal
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Next Track](media/tidal/tidal-next-track.applescript) | Skip to the next track in Tidal. | [Charles Harries](https://github.com/charlesharries) | | | |
+ | | [Pause](media/tidal/tidal-pause.applescript) | Pause the current track in Tidal. | [Charles Harries](https://github.com/charlesharries) | | | |
+ | | [Play](media/tidal/tidal-play.applescript) | Play the current track in Tidal. | [Charles Harries](https://github.com/charlesharries) | | | |
+ | | [Previous Track](media/tidal/tidal-previous-track.applescript) | Skip back to the previous track in Tidal. | [Charles Harries](https://github.com/charlesharries) | | | |
+ | | [Toggle Play/Pause](media/tidal/tidal.applescript) | Play/Pause Tidal | [Cebrail AKTAS](https://github.com/AktasC) | | | |
+
+#### foobar2000
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Next foobar2000](media/foobar2000/foobar2000-next.applescript) | Shortcuts to next foobar2000 for Mac v2.3.0 | [Jing Li](https://github.com/lixeon) | | | |
+ | | [Pause foobar2000](media/foobar2000/foobar2000-pause.applescript) | Shortcuts to pause foobar2000 for Mac v2.3.0 | [Jing Li](https://github.com/lixeon) | | | |
+ | | [Previous foobar2000](media/foobar2000/foobar2000-pervious.applescript) | Shortcuts to Previous foobar2000 for Mac v2.3.0 | [Jing Li](https://github.com/lixeon) | | | |
+
## Navigation
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🫥 | [Hide Current Application](navigation/hide-application.applescript) | Easily hide your foremost application | [Chris Bailey](https://raycast.com/that70schris) | | | |
| | [JustFocus](navigation/justfocus.applescript) | N/A | Jax0rz | ✅ | | |
| 📂 | [Open Applications](navigation/open-applications.sh) | Opens the Applications folder in the Finder. | Raycast | | | |
| 🖥 | [Open Clipboard URL on Desktop](navigation/open-desktop-url-from-clipboard.swift) | Opens the URL from the clipboard in the desktop app. | Raycast | | | |
@@ -854,6 +1323,7 @@ This repository contains sample commands and documentation to write your own one
| 🔍 | [Open Finder](navigation/open-finder.sh) | Open Finder at Home folder or argument location | [Afraz](https://github.com/afrazkhan) | ✅ | | |
| | [Open Home](navigation/open-home.sh) | Opens the Home folder in the Finder. | Raycast | | | |
| | [Open Image From Clipboard](navigation/open-clipboard-in-pixelmator-pro.applescript) | Creates a new document in Pixelmator Pro from the image stored in your clipboard. | [Bryce Carr](https://github.com/bdcarr) | | | |
+ | | [Open Last Downloaded](navigation/open-last-downloaded.sh) | Opens the last file that was downloaded | Raycast | | | |
| | [Open Library](navigation/open-library.sh) | Opens the Library folder in the Finder. | Raycast | | | |
| 🌐 | [Open URL From Clipboard](navigation/open-url-from-clipboard.sh) | Opens the URL in the clipboard. | Raycast | | | |
| | [Quit Application](navigation/quit-application.applescript) | Quit the application. Edit the command to change the default values (Application: "", Force quit?: "No"). | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
@@ -861,32 +1331,31 @@ This repository contains sample commands and documentation to write your own one
| | [Search in Dash](navigation/search-in-dash.sh) | N/A | Jax0rz | ✅ | | |
| | [Search in Devdocs](navigation/search-in-devdocs.sh) | N/A | Jax0rz | ✅ | | |
-## Password Managers
+## Productivity
#### Bitwarden
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
- | | [Bitwarden Status](password-managers/bitwarden/status.sh) | Display the authentication and lock status of the user's Bitwarden session. | [Phil Salant](https://github.com/PSalant726) | | | |
- | | [Copy First Matching Password](password-managers/bitwarden/copy-first-matching-password.sh) | Search all items in a Bitwarden vault, and copy the password of the first search result to the clipboard. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
- | | [Copy First Matching TOTP](password-managers/bitwarden/copy-first-matching-totp.sh) | Search all items in a Bitwarden vault, and copy the TOTP of the first search result to the clipboard. | [Phil Salant](https://github.com/int3rrupt) | ✅ | | |
- | | [Create a Text Send](password-managers/bitwarden/create-text-send.sh) | Create a new text-only Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
- | | [Delete a Send](password-managers/bitwarden/delete-send.sh) | Delete a Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
- | | [Edit a Send](password-managers/bitwarden/edit-send.sh) | Edit an existing Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
- | | [List All Text Sends](password-managers/bitwarden/list-sends.sh) | List all Bitwarden text Sends created in the currently unlocked account. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
- | | [Lock Session](password-managers/bitwarden/lock.sh) | Lock a Bitwarden session. | [Phil Salant](https://github.com/PSalant726) | | | |
- | | [Log In](password-managers/bitwarden/log-in.template.sh) | Log in to Bitwarden. | [Phil Salant](https://github.com/PSalant726) | ✅ | ✅ | |
- | | [Log Out](password-managers/bitwarden/log-out.sh) | Log out of Bitwarden. | [Phil Salant](https://github.com/PSalant726) | | | |
- | | [Receive a Text Send](password-managers/bitwarden/receive-text-send.sh) | View the content of a text-only Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
- | | [Search Vault Items](password-managers/bitwarden/search-vault-items.sh) | Search all items in a Bitwarden vault. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
- | | [Unlock Session](password-managers/bitwarden/unlock.sh) | Unlock an authenticated Bitwarden session. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
-
-## Productivity
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Bitwarden Status](productivity/bitwarden/status.sh) | Display the authentication and lock status of the user's Bitwarden session. | [Phil Salant](https://github.com/PSalant726) | | | |
+ | | [Copy First Matching Password](productivity/bitwarden/copy-first-matching-password.sh) | Search all items in a Bitwarden vault, and copy the password of the first search result to the clipboard. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [Copy First Matching TOTP](productivity/bitwarden/copy-first-matching-totp.sh) | Search all items in a Bitwarden vault, and copy the TOTP of the first search result to the clipboard. | [Phil Salant](https://github.com/int3rrupt) | ✅ | | |
+ | | [Create a Text Send](productivity/bitwarden/create-text-send.sh) | Create a new text-only Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [Delete a Send](productivity/bitwarden/delete-send.sh) | Delete a Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [Edit a Send](productivity/bitwarden/edit-send.sh) | Edit an existing Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [List All Text Sends](productivity/bitwarden/list-sends.sh) | List all Bitwarden text Sends created in the currently unlocked account. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [Lock Session](productivity/bitwarden/lock.sh) | Lock a Bitwarden session. | [Phil Salant](https://github.com/PSalant726) | | | |
+ | | [Log In](productivity/bitwarden/log-in-apikey.template.sh) | Log in to Bitwarden using an API key. | [Marcel Bochtler](https://github.com/MarcelBochtler) | ✅ | ✅ | |
+ | | [Log In](productivity/bitwarden/log-in.template.sh) | Log in to Bitwarden. | [Phil Salant](https://github.com/PSalant726) | ✅ | ✅ | |
+ | | [Log Out](productivity/bitwarden/log-out.sh) | Log out of Bitwarden. | [Phil Salant](https://github.com/PSalant726) | | | |
+ | | [Receive a Text Send](productivity/bitwarden/receive-text-send.sh) | View the content of a text-only Bitwarden Send. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [Search Vault Items](productivity/bitwarden/search-vault-items.sh) | Search all items in a Bitwarden vault. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [Unlock Session](productivity/bitwarden/unlock.sh) | Unlock an authenticated Bitwarden session. | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
#### Imgur
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 📋 | [Clipboard to Imgur](productivity/imgur/imgur-upload-clipboard-image.template.sh) | Upload Image from your Clipboard and copy the image link to clipboard | [Fahim Faisal](https://github.com/i3p9) | | ✅ | |
| 📷 | [Screenshot and Imgur](productivity/imgur/screenshot-and-imgur.sh) | Opens default screenshot interface and immediately uploads and copies link to clipboard | [Fahim Faisal](https://github.com/i3p9) | | | |
| ☁️ | [Upload Latest Screenshot to Imgur](productivity/imgur/imgur-upload-latest-screenshot.template.sh) | Upload your last screenshot to Imgur and copy the image link to clipboard | [Fahim Faisal](https://github.com/i3p9) | | ✅ | |
@@ -894,29 +1363,72 @@ This repository contains sample commands and documentation to write your own one
#### Pomodoro
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 🍅 | [Start Timer](productivity/pomodoro/pomodoro-start-timer.sh) | Start a Pomodoro timer | [Thomas Paul Mann](https://github.com/thomaspaulmann) | ✅ | | |
| 🍅 | [Status](productivity/pomodoro/pomodoro-status.sh) | Status of a Pomodoro timer | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
| 🍅 | [Stop Timer](productivity/pomodoro/pomodoro-stop-timer.sh) | Stop active Pomodoro timer | [Thomas Paul Mann](https://github.com/thomaspaulmann) | | | |
-#### Stopwatch
+#### Writing
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 📖 | [Dictionary Lookup](productivity/writing/dictionary-lookup.swift) | Directly use macOS Dictionary | [Alessandra Pereyra](https://github.com/alessandrapereyra) | ✅ | | |
+ | 🤖 | [Word Count](productivity/writing/word-count.sh) | Counts the number of words of the text in the clipboard | [Benny Wong](https://bwong.net) | | | |
+
+#### macOCR
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 📸 | [Run OCR](productivity/macocr/macocr-run-ocr.sh) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
+
+#### stopwatch
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| ⏱ | [Show Stopwatch Progress](productivity/stopwatch/stopwatch-progress.sh) | Status of active stopwatch | [Achille Lacoin](https://github.com/pomdtr) | | | |
| ⏱ | [Start Stopwatch](productivity/stopwatch/stopwatch-start.sh) | Start a stopwatch | [Achille Lacoin](https://github.com/pomdtr) | | | |
| ⏱ | [Stop Stopwatch](productivity/stopwatch/stopwatch-stop.sh) | Stop active stopwatch, copy total time | [Achille Lacoin](https://github.com/pomdtr) | | | |
+#### tesseract
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 🔍 | [OCR Screenshot](productivity/tesseract/tesseract-ocr.sh) | Tesseract OCR | [Diego Lopes](https://github.com/Dihgg) | ✅ | | |
+
## Remote Control
-#### Lg Tv
+#### Arm64
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 📺 | [Switch to DP](remote-control/ddc/arm64/screen-dp.sh) | This script will switch the external display screen to DP. | goodhyun | | | |
+ | 📺 | [Switch to HDMI](remote-control/ddc/arm64/screen-hdmi.sh) | This script will switch the external display screen to HDMI. | goodhyun | | | |
+
+#### X86
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 📺 | [Switch to DP](remote-control/ddc/x86/screen-dp.sh) | This script will switch the external display screen to DP. | goodhyun | | | |
+ | 📺 | [Switch to HDMI](remote-control/ddc/x86/screen-hdmi.sh) | This script will switch the external display screen to HDMI. | goodhyun | | | |
+
+#### Denon AVR
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Configure](remote-control/denon-avr/configure.applescript) | Helperscript to configure Denon AVR Script Commands | [Rediwed](github.com/Rediwed) | ✅ | | |
+ | | [Power Off](remote-control/denon-avr/power-off.applescript) | Powers off a modern Denon AVR if it is currently powered on | [Rediwed](github.com/Rediwed) | | | |
+ | | [Power On](remote-control/denon-avr/power-on.applescript) | Powers on a modern Denon AVR if it is currently powered off | [Rediwed](github.com/Rediwed) | | | |
+ | | [Volume Down](remote-control/denon-avr/volume-down.applescript) | Decreases the volume of your Denon AVR by one unit | [Rediwed](github.com/Rediwed) | | | |
+ | | [Volume Up](remote-control/denon-avr/volume-up.applescript) | Increases the volume of your Denon AVR by one unit | [Rediwed](github.com/Rediwed) | | | |
+
+#### LG TV
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Authenticate](remote-control/lg-tv/authenticate.sh) | Authenticate the library. The TV has to be turned on. You have to provide the IP address of the TV and accept the connection on the TV. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Change Channel](remote-control/lg-tv/change-channel.sh) | Change the TV channel by its ID. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Change Input](remote-control/lg-tv/change-input.sh) | Change the input by its ID. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
- | | [Change Sound Output](remote-control/lg-tv/change-sound-output.sh) | Change the sound output. Possible "Output Type" values: tv_speaker | external_optical | external_arc | external_speaker | lineout | headphone | tv_external_speaker | tv_speaker_headphone | bt_soundbar. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
+ | | [Change Sound Output](remote-control/lg-tv/change-sound-output.sh) | Change the sound output. Possible "Output Type" values: tv_speaker \| external_optical \| external_arc \| external_speaker \| lineout \| headphone \| tv_external_speaker \| tv_speaker_headphone \| bt_soundbar. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Change Volume](remote-control/lg-tv/change-volume.sh) | Change the volume level. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Close App](remote-control/lg-tv/close-app.sh) | Close the application by its ID. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
| | [Execute Command](remote-control/lg-tv/execute-command.sh) | Execute the given command on TV. | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
@@ -962,34 +1474,50 @@ This repository contains sample commands and documentation to write your own one
| | [Turn Volume Up](remote-control/lg-tv/turn-volume-up.sh) | Turn the volume up. | [Jakub Lanski](https://github.com/jaklan) | | | |
| | [Unmute](remote-control/lg-tv/unmute.sh) | Unmute the TV. | [Jakub Lanski](https://github.com/jaklan) | | | |
-#### Samsung Tv
+#### Samsung TV
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Turn Off TV](remote-control/samsung-tv/turn-off.template.py) | Turns off a Samsung TV. | [Darryl Brooks](https://github.com/DarrylBrooks97) | | ✅ | |
| | [Turn On TV](remote-control/samsung-tv/turn-on.template.py) | Turns on a Samsung TV. | [Darryl Brooks](https://github.com/DarrylBrooks97) | | ✅ | |
## System
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 💻 | [Add Spacer to Dock](system/add-spacer-to-dock.sh) | Adds an invisible icon to the Dock as a separator. | [Alexandru Turcanu](https://github.com/Pondorasti) | | | |
+ | 🔋 | [Battery Info](system/battery-info.sh) | Get Battery percentage, time remaining, charge status, charger wattage, total cycles etc. | [Fahim Faisal](https://github.com/i3p9) | | | |
| ☀️ | [Brightness](system/brightness.sh) | Set system brightness | [Antonio Dal Sie](https://github.com/exodusanto) | ✅ | | |
+ | 🖥️ | [CPU Usage](system/inline-cpu-usage-percent.sh) | Display CPU usage percent | [Juan Luis Romero](https://github.com/JuanluR8) | | | |
| ☕️ | [Caffeinate](system/caffeinate-status.swift) | Shows caffeinate status and time left if it's running | [Yan Smaliak](https://github.com/ysmaliak) | | | |
| ☕️ | [Caffeinate](system/caffeinate-status.sh) | Shows caffeinate status | [Yan Smaliak](https://github.com/ysmaliak) | | | |
- | 💻 | [Capture Fullscreen to Clipboard](system/capture-fullscreen-to-clipboard.sh) | This script screenshots the entire screen and saves it to the clipboard. | [Aaron Miller](https://github.com/aaronhmiller) | | | sh |
- | 💻 | [Capture Fullscreen to Desktop](system/capture-fullscreen-to-desktop.sh) | This script screenshots the entire screen and saves it to the desktop. | [Aaron Miller](https://github.com/aaronhmiller) | | | sh |
- | 💻 | [Capture Screen Selection to Clipboard](system/capture-screen-selection-to-clipboard.sh) | This script screenshots the selected area and saves it to the clipboard. | [Aaron Miller](https://github.com/aaronhmiller) | | | sh |
- | 💻 | [Capture Screen Selection to Desktop](system/capture-screen-selection-to-desktop.sh) | This script screenshots the selected area and saves it to the desktop. | [Aaron Miller](https://github.com/aaronhmiller) | | | sh |
- | 📅 | [Copy Availability](system/copy-availability.swift) | Copies the calendar availability of today. | Raycast | | | |
+ | 💻 | [Capture Fullscreen to Clipboard](system/capture-fullscreen-to-clipboard.sh) | This script screenshots the entire screen and saves it to the clipboard. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
+ | 💻 | [Capture Fullscreen to Desktop](system/capture-fullscreen-to-desktop.sh) | This script screenshots the entire screen and saves it to the desktop. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
+ | 💻 | [Capture Screen Selection to Clipboard](system/capture-screen-selection-to-clipboard.sh) | This script screenshots the selected area and saves it to the clipboard. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
+ | 💻 | [Capture Screen Selection to Desktop](system/capture-screen-selection-to-desktop.sh) | This script screenshots the selected area and saves it to the desktop. | [Aaron Miller](https://github.com/aaronhmiller) | | | |
+ | 🔪 | [Close All Finder Windows](system/close-finder-windows.applescript) | Close all open Finder windows. | [Alexander Steffen](https://github.com/alexjsteffen) | | | |
+ | 📅 | [Copy Availability](system/copy-availability.swift) | Copies the calendar availability of today. | Raycast | ✅ | | |
+ | | [Copy Finder Selection to Clipboard](system/copy-selection-to-clipboard.applescript) | Copy contents of selected items in Finder to the clipboard. If there's more than one file selected, they will be combined and added to the clipboard. | [Felipe Turcheti](https://felipeturcheti.com) | | | |
| 💁 | [Copy Last Download](system/copy-last-download.swift) | Copy the last downloaded file to the clipboard. | Raycast | | | |
| 📸 | [Copy Last Screenshot](system/copy-last-screenshot.swift) | Copies the last screenshot to the clipboard. | Raycast | | | |
+ | 📝 | [Copy Meeting Summary](system/meeting_summary_script.swift) | Copies a summary of today's meetings to the clipboard. | Raycast | | | |
+ | 📟 | [Copy Wi-Fi Password](system/wifi-password.sh) | Copy Wi-Fi password from current session | [Astrit Malsia](https://github.com/astrit) | | | |
| 📧 | [Create Email](system/new-email.sh) | Opens default email application, and creates a new email with the given inputs. | [Brandon Escamilla](https://github.com/brandonescamilla) | ✅ | | |
| 📄 | [Create New File](system/create-new-file.applescript) | Create files in the front window or desktop of the visit | [LokHsu](https://github.com/lokhsu) | | | |
| | [Create New File in Finder](system/create-new-file-in-finder.applescript) | Create New File in Finder is a script to make your Finder better.You can use this script to create a plain text file. | Jax0rz | | | |
+ | | [Custom Window Size](system/custom-window.applescript) | Resize and center the frontmost window to any custom size. | [Astrit](https://github.com/astrit) | ✅ | | |
+ | | [Default to Arc](system/default-browser-arc.applescript) | Set Arc as the default browser. | [Marcos Sánchez-Dehesa](https://github.com/dehesa) | | | |
+ | | [Default to Chrome](system/default-browser-chrome.applescript) | Set Google Chrome as the default browser. | [Marcos Sánchez-Dehesa](https://github.com/dehesa) | | | |
+ | | [Default to Chromium](system/default-browser-chromium.applescript) | Set Chromium as the default browser. | [Marcos Sánchez-Dehesa](https://github.com/dehesa) | | | |
+ | | [Default to Firefox](system/default-browser-firefox.applescript) | Set Firefox as the default browser. | [Marcos Sánchez-Dehesa](https://github.com/dehesa) | | | |
+ | | [Default to Safari](system/default-browser-safari.applescript) | Set Safari as the default browser. | [Marcos Sánchez-Dehesa](https://github.com/dehesa) | | | |
| ☕️ | [Disable Caffeinate](system/caffeinate-disable.sh) | Stops all caffeinate sessions | [Yan Smaliak](https://github.com/ysmaliak) | | | |
+ | 💾 | [Disk Free](system/disk-free.sh) | Show free space in your mounted disks | [Juan Luis Romero](https://github.com/JuanluR8) | | | |
| 💿 | [Disk Usage](system/disk-usage.sh) | Show disk usage for / (root) | [Jesse Claven](https://github.com/jesse-c) | | | |
+ | 🔕 | [Dismiss Notifications](system/dismiss-notifications.applescript) | Close all notification alerts staying on screen, e.g., Calendar notifications. | [benyn](github.com/benyn) | | | |
| 🔕 | [Do Not Disturb](system/do-not-disturb.sh) | Do Not Disturb | [Antonio Dal Sie](https://github.com/exodusanto) | ✅ | | |
+ | 🤖 | [Dock Position](system/dock-set-position.sh) | Set the position of the Dock in the screen | [Jelte Lagendijk](https://raycast.com/j3lte) | ✅ | | |
+ | 🤖 | [Dock Set Autohide](system/dock-set-autohide.sh) | Set the Dock autohide | [Jelte Lagendijk](https://raycast.com/j3lte) | ✅ | | |
| 📀 | [Eject All Disks](system/eject-all-disks.applescript) | Ejects all mounted disk images. | Raycast | | | |
| 📋 | [Empty Clipboard](system/empty-clipboard.sh) | Empty Clipboard | Raycast | | | |
| 🗑 | [Empty Trash](system/empty-trash.applescript) | Empty the trash. | Raycast | | | |
@@ -999,36 +1527,49 @@ This repository contains sample commands and documentation to write your own one
| ⚠️ | [Kill Running Process](system/kill-process.sh) | Force kill a running process | [Gustavo Santana](https://github.com/gumadeiras) | ✅ | | |
| 📈 | [Largest CPU Process](system/largest-cpu-process.sh) | Report process with largest system CPU usage. | [Caleb Stauffer](https://github.com/crstauf) | | | |
| 📈 | [Largest RAM Process](system/largest-ram-process.sh) | Report process with largest system RAM usage. | [Caleb Stauffer](https://github.com/crstauf) | | | |
+ | 🔋 | [Low Power Mode](system/Low Power Mode.sh) | N/A | [Kailash Yellareddy](https://github.com/kyellareddy) | | | |
+ | | [Minimize All Windows](system/minimize-all-windows.applescript) | This script minimizes all windows of currently running apps | [Ernest Ojeh](https://github.com/namzo) | | | |
| 🌵 | [Modify File Extension](system/modify-extension.sh) | Batch modify the file in the current directory or the specified extension of the selected file | [LokHsu](https://github.com/lokhsu) | ✅ | | |
| 🗑 | [Move Desktop to Trash](system/move-desktop-to-trash.applescript) | Empty the desktop. | [Seypopi](https://github.com/Seypopi) | | | |
| | [Move Downloads to Trash](system/move-downloads-to-trash.applescript) | N/A | Jax0rz | | | |
+ | 🛜 | [Network Info](system/Network Info.sh) | N/A | [Kailash Yellareddy](https://github.com/kyellareddy) | | | |
+ | 🌐 | [Network Quality](system/network-quality.sh) | N/A | [Archie Lacoin](https://github.com/pomdtr) and [LanikSJ](https://github.com/LanikSJ) | | | |
| 📶 | [Network Status](system/network-status.sh) | Get current network connections. | [Alexandru Turcanu](https://github.com/Pondorasti) | | | |
+ | 🖼 | [OCR](system/ocr.swift) | Use macOS Vision API Identification pictures, if it contain a QR code, Copy the QR code content to the clipboard, If do not include QR codes, identify text content and supplement to clipboard | [zhe](https://github.com/wmszhe) | | | |
+ | 🔑 | [One-Time Password](system/otp.sh) | Get One-Time Password (OTP) from Apple Password Manager | Angelos Michalopoulos | ✅ | | |
| 📁 | [Open Folder](system/open-folder.sh) | Open a folder on macOS | [Bin Hua](https://github.com/hzb) | ✅ | | |
+ | 📋 | [Open Image](system/open-image-from-clipboard.sh) | Open Image from Clipboard in Preview for OCR or other purposes. | [xxchan](https://github.com/xxchan) | | | |
| 💁♂️ | [Open Last Download](system/open-last-download.swift) | Opens the last downloaded file. | Raycast | | | |
| 🗃 | [Open Selection With](system/open-selection-with.applescript) | Open selected items in Finder with the given application. | [Felipe Turcheti](https://felipeturcheti.com) | ✅ | | |
| 💥 | [Quit All Applications](system/quit-all-apps.swift) | Quits all running applications except Finder and Raycast. | Raycast | | | |
| 💥 | [Quit app](system/quit-app.swift) | Quits an app, by name or process id. | [Roland Leth](https://runtimesharks.com) | ✅ | | |
| 🖼️ | [Refresh Wallpaper](system/wallpaper-refresh.applescript) | Apply a random image from the [wallpaper directory](https://support.apple.com/guide/mac-help/change-your-desktop-picture-mchlp3013/mac) for the main display's current [Space](https://support.apple.com/guide/mac-help/work-in-multiple-spaces-mh14112/mac). | [Caleb Stauffer](https://github.com/crstauf) | | | |
+ | 📂 | [Rename Video](system/rename-videos-pictures.py) | This is a simple Python script for recursively renaming video and picture files within a directory. Type the root directory's absolute path, and it will scan all the video and picture files in it and rename them according to the folder where they are located as the format `--`. | [StepaniaH](https://github.com/StepaniaH) | ✅ | | |
+ | 🚀 | [Reset Launchpad](system/reset-launchpad.sh) | Resets the macOS Launchpad to its default state | [Zach Dawson](https://raycast.com/zdawz) | | | |
| ♻️ | [Restart](system/restart.applescript) | Restarts computer. | Raycast | | | |
| 💀 | [Restart the Dock](system/restart-dock.sh) | Restart the Dock | [Jordi Clement](https://github.com/jordicl) | | | |
| 💀 | [Restart the Finder](system/restart-finder.sh) | Restart the Finder | [Jordi Clement](https://github.com/jordicl) | | | |
| 🔡 | [Running processes](system/list-processes.rb) | List running app showing their process id, CPU usage, name, and optionally the process path. | [Roland Leth](https://runtimesharks.com) | ✅ | | |
| 🎨 | [Sample Color](system/sample-color.swift) | Sample a color from anywhere on your screen. | [Jesse Claven](https://github.com/jesse-c) | | | |
+ | 🤖 | [Save Image From Clipboard](system/save-image-from-clipboard.py) | Save Image From Clipboard | [Yufei Kang](kangyufei.net) and [LanikSJ](https://github.com/LanikSJ) | | | |
| 🌀 | [Screen Saver](system/screensaver.applescript) | A script command to start your current screen saver. | [Valentin Chrétien](https://twitter.com/valentinchrt) | | | |
| 🧭 | [Set Frontmost App as Default Browser](system/default-browser-front-most-app.applescript) | Set Frontmost Web Browser as Default Browser. | [Yohanes Bandung Bondowoso](https://github.com/ybbond) | ✅ | | |
| 🛌 | [Shut Down](system/shutdown.applescript) | Shuts down computer. | Raycast | | | |
- | 🖥 | [Sidecar Switch](system/sidecar-toggle.template.applescript) | Toggles on/off a Sidecar screen. | [Marcos Sánchez-Dehesa](https://www.github.com/dehesa) | | ✅ | |
| 😴 | [Sleep](system/sleep.applescript) | Puts computer to sleep. | Raycast | | | |
- | 🧭 | [Switch Default Browser to Chrome](system/default-browser-chrome.sh) | Set Chrome as the default browser. | [Marc Klingen](https://github.com/marcklingen) | | | |
- | 🧭 | [Switch Default Browser to Chromium](system/default-browser-chromium.sh) | Set Chromium as the default browser. | [Marc Klingen](https://github.com/marcklingen) | | | |
- | 🧭 | [Switch Default Browser to Firefox](system/default-browser-firefox.sh) | Set Firefox as the default browser. | [Marc Klingen](https://github.com/marcklingen) | | | |
- | 🧭 | [Switch Default Browser to Safari](system/default-browser-safari.sh) | Set Safari as the default browser. | [Marc Klingen](https://github.com/marcklingen) | | | |
+ | 😴 | [Sleep Timer](system/sleep-timer.applescript) | Put your Mac to sleep (in X minutes). | [AndriiBarabash](https://github.com/AndriiBarabash) | ✅ | | |
+ | 🧬 | [Toggle .DS_Store](system/toggle-ds-store.applescript) | A script command to enable and disable .DS_Store | [Astrit](https://github.com/astrit) | | | |
+ | 🔋 | [Toggle Battery Charging](system/toggle-battery-charging.sh) | Toggle charging the battery when it is plugged in. When turned off, it will always use the charger instead of the battery; when turned on, it will go to automatic mode (decide based on your settings and daily charging routine). | [Amir Hossein SamadiPour](https://github.com/SamadiPour) | | | |
| | [Toggle Bluetooth](system/bluetooth.template.applescript) | Toggle your Bluetooth connection. | [Vincent Dörig](https://github.com/vincentdoerig) | | ✅ | |
| 🖥 | [Toggle Desktop Icons](system/toggle-desktop-icons.applescript) | A script command to show and hide icons of Desktop folder | [Raycast](https://raycast.com) | | | |
+ | 🔄 | [Toggle Desktop Widgets](system/toggle-desktop-widget.sh) | N/A | [Federico Zivolo](https://github.com/FezVrasta) | | | |
+ | 🤖 | [Toggle Dock Autohide](system/dock-autohide-toggle.sh) | Toggle the Dock Autohide | [Jelte Lagendijk](https://raycast.com/j3lte) | | | |
| 👓 | [Toggle Filename Extensions](system/toggle-filename-extensions.applescript) | Show or hide all filename extensions (like .txt, .png) | [Senthil Prabhu](https://github.com/senthilprabhut) | | | |
| 🖥 | [Toggle Flip Screen to °](system/toggle-flip-screen.template.applescript) | Toggle flip (rotate) or revert the to ° | [Yohanes Bandung Bondowoso](https://github.com/ybbond) | | ✅ | |
| 👓 | [Toggle Hidden Files](system/toggle-hidden-files.applescript) | Show and hide hidden files/folders which starts with "." (dot), i.e: .bash_rc, .ssh | [Thiago Holanda](https://twitter.com/tholanda) | | | |
+ | 🐚 | [Toggle Lid Sleep](system/toggle-lid-sleep.sh) | Prevent sleep from closing laptop lid (clamshell mode) | [Ivan Rybalko](https://github.com/ivribalko) | | | |
| 🖱 | [Toggle Natural Scrolling](system/toggle-natural-scrolling.applescript) | Script Command to change natural trackpad/mouse scrolling setting. Reverting the setting value each time. | [Wiley Marques](https://twitter.com/wileymarques) | | | |
+ | 🖱 | [Toggle Natural Scrolling (macOS 15+)](system/toggle-natural-scrolling-macos15.applescript) | Toggle natural trackpad/mouse scrolling setting for macOS 15.6.1+ | [Raphael-KR](https://github.com/Raphael-KR) | | | |
+ | 🌘 | [Toggle Night Shift](system/nightshift.sh) | Toggle Night Shift mode (until tomorrow/sunrise). Required [nightlight](https://github.com/smudge/nightlight) | [BhEaN](https://github.com/bhean) | | | |
| 🌗 | [Toggle System Appearance](system/toggle-system-appearance.applescript) | Script Command to switch between the system appearance, light and dark mode. | [Thiago Holanda](https://twitter.com/tholanda) | | | |
| | [Toggle Wi-Fi](system/wifi.template.applescript) | Toggle your Wi-Fi connection. | [Vincent Dörig](https://github.com/vincentdoerig) | | ✅ | |
| 😴 | [Turn Off Do Not Disturb](system/dnd-off.sh) | Turn off "do not disturb" mode. Does [not work on Big Sur](https://github.com/sindresorhus/do-not-disturb-cli/issues/2). | [Caleb Stauffer](https://github.com/crstauf) | | | |
@@ -1039,33 +1580,53 @@ This repository contains sample commands and documentation to write your own one
#### Audio
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| ⚡️ | [AirPods Battery Level](system/audio/airpodsbattery.sh) | Get the current battery status of your AirPods. | [Quentin Eude](https://www.github.com/qeude) | | | |
| 🔈 | [Audio devices](system/audio/get-audio-devices.swift) | Lists all audio devices | [Roland Leth](https://runtimesharks.com) | | | |
| 🔈 | [Audio devices](system/audio/get-selected-audio-device.swift) | Shows the selected audio devices for input and output | [Roland Leth](https://runtimesharks.com) | | | |
+ | 🎧 | [Headphones Battery Level](system/audio/bluetooth-headphones-battery-level.template.sh) | Get the battery level of your bluetooth headphones | [Mortada Sarheed](https://github.com/mSarheed) | | ✅ | |
| 🎧 | [Reload CoreAudio](system/audio/reload-coreaudio.sh) | Reloads CoreAudio. | [Maxim Krouk](https://github.com/maximkrouk) | | | |
| 🎧 | [Set audio device](system/audio/set-audio-device.swift) | Sets the input (i), the output (o) or both (b) audio sources, based on name. If `both` is passed, but no input or output device is found with the given name, it will still try to set the other one. For example, if you're trying to set both to "External mic", which doesn't have an input source, it will still set the output to the mic; vice-versa for a speaker. | [Roland Leth](https://runtimesharks.com) | ✅ | | |
| 🔊 | [Switch Audio to ](system/audio/audio-output-switch.template.applescript) | Switch audio output to desired device. | [mmerle](https://github.com/mmerle) | | ✅ | |
| | [Toggle AirPods](system/audio/toggle-airpods.template.swift) | Toggle AirPods bluetooth device | [Nichlas W. Andersen](https://github.com/itsnwa) | | ✅ | |
| 🎙 | [Toggle Microphone](system/audio/toggle-mic.applescript) | Toggles microphone. | [Matthew Morek](https://github.com/matthewmorek) | | | |
+ | 🔔 | [Toggle Mute Notifcation Sounds](system/audio/toggle-mute-notification-sounds.applescript) | Toggles notification sounds. | [Annie Ma](http://www.anniema.co/) | | | |
+
+#### Magic Keyboard Switcher
-#### Vpn
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | | [Magic Keyboard switcher](system/magic-keyboard-switcher/magic-keyboard-switcher.template.sh) | Switch a single magic keyboard between computers | [blastik](https://github.com/blastik) | | ✅ | |
+
+#### VPN
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 📡 | [Connect](system/vpn/vpn-start.sh) | Start VPN connection. | [Alexandru Turcanu](https://github.com/Pondorasti) | | | |
| 📡 | [Disconnect](system/vpn/vpn-stop.sh) | Stop VPN connection. | [Alexandru Turcanu](https://github.com/Pondorasti) | | | |
| 📡 | [VPN Status](system/vpn/vpn-status.sh) | Stop VPN connection. | [Alexandru Turcanu](https://github.com/Pondorasti) | | | |
+#### Vpnutil
+
+| Icon | Title | Description | Author | Args | Templ | Lang |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
+ | 📡 | [Start VPN](system/vpnutil/vpnutil-start.sh) | Start VPN connection. | [Sergey Fuksman](https://github.com/fuksman) | | | |
+ | 📡 | [Stop VPN](system/vpnutil/vpnutil-stop.sh) | Stop VPN connection | [Sergey Fuksman](https://github.com/fuksman) | | | |
+ | 📡 | [Toggle VPN](system/vpnutil/vpnutil-toggle.sh) | Toggle VPN connection | [Sergey Fuksman](https://github.com/fuksman) | | | |
+ | 📡 | [VPN Status](system/vpnutil/vpnutil-status.sh) | Check VPN connection | [Sergey Fuksman](https://github.com/fuksman) | | | |
+
## Web Searches
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| 📦 | [Bundlephobia cost](web-searches/bundlephobia.sh) | N/A | [Zander Martineau](https://zander.wtf) | ✅ | | |
| ❓ | [Caniuse.com search](web-searches/caniuse.sh) | N/A | [Zander Martineau](https://zander.wtf) | ✅ | | |
| 🌦 | [Check Weather](web-searches/check-weather.sh) | N/A | [Jakub Lanski](https://github.com/jaklan) | ✅ | | |
- | | [CoinMarketCap Search](web-searches/search-coinmarketcap.sh) | Searches coinmarketcap currencies. | [Benedict Neo](https://github.com/benthecoder) | ✅ | | |
+ | 🚚 | [Clipboard to 17TRACK](web-searches/clipboard-to-17track.js) | Open 17TRACK with the tracking code found in the clipboard | [Alessandra Pereyra](https://github.com/alessandrapereyra) | | | |
+ | 🪙 | [CoinMarketCap Search](web-searches/search-coinmarketcap.sh) | Searches coinmarketcap currencies. | [Benedict Neo](https://github.com/benthecoder) | ✅ | | |
| | [Find Email Address With Hunter](web-searches/hunter.sh) | Find emails using hunter.io | [Tanguy Le Stradic](https://github.com/tanguyls) | ✅ | | |
+ | 📖 | [Find Paper](web-searches/doi.sh) | Parses and opens DOI links in your browser | [Razvan Azamfirei](https://github.com/razvanazamfirei) | ✅ | | |
+ | 📖 | [Find Paper](web-searches/doi-clipboard.sh) | Scans clipboard and opens DOI links in your browser | [Razvan Azamfirei](https://github.com/razvanazamfirei) | | | |
| | [Giphy search](web-searches/giphy.sh) | N/A | [Zander Martineau](https://zander.wtf) | ✅ | | |
| 🌍 | [Google Translate](web-searches/google-translate.rb) | Translates via Google Translate | [Roland Leth](https://runtimesharks.com) | ✅ | | |
| | [I'm Feeling Ducky](web-searches/im-feeling-ducky.sh) | Open the first DuckDuckGo search result page for your query (also supports bang!) | [Achille Lacoin](https://github.com/pomdtr) | ✅ | | |
@@ -1076,15 +1637,18 @@ This repository contains sample commands and documentation to write your own one
| | [Search Genre in Chosic](web-searches/search-gender-in-chosic.applescript) | Find the current Spotify track's gender in Chosic | [quelhasu](https://github.com/quelhasu) | | | |
| | [Search GitHub](web-searches/search-github.sh) | Search [GitHub](https://github.com). | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| | [Search Go Package Documentation](web-searches/pkg-go-dev.sh) | Search pkg.go.dev for package documentation | [Phil Salant](https://github.com/PSalant726) | ✅ | | |
+ | | [Search Google Maps](web-searches/google-maps.sh) | N/A | Raycast | ✅ | | |
| | [Search Hacker News](web-searches/search-hacker-news.sh) | Search Hacker News | [Shannon Matthews](https://github.com/s-oram) | ✅ | | |
| | [Search IMDB](web-searches/search-imdb.sh) | Search IMDB. | [Lucas Costa](https://github.com/lucasrcosta) | ✅ | | |
| | [Search LinkedIn](web-searches/search-linkedin.sh) | Search LinkedIn | [Nitin Gupta](https://twitter.com/gniting) | ✅ | | |
| | [Search MDN (Mozilla Developer Network)](web-searches/mozilla-developer-network.sh) | N/A | [Jon Callahan](https://www.joncallahan.com) | ✅ | | |
| | [Search Netflix](web-searches/search-netflix.sh) | Search Netflix. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
+ | | [Search OpenSecrets.org](web-searches/opensecrets.sh) | N/A | [Daniel Sieradski](https://github.com/selfagency) | ✅ | | |
| | [Search PHP Docs](web-searches/search-php-docs.sh) | Search [PHP official documentation](https://www.php.net/docs.php). | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| | [Search Python 3 Documentation](web-searches/search-python3-docs.sh) | Search Python 3 Documentation | [Lucas Costa](https://github.com/lucasrcosta) | ✅ | | |
| | [Search Python Package Index (PyPI)](web-searches/search-pypi.sh) | Search Python Package Index (PyPI) | [Lucas Costa](https://github.com/lucasrcosta) | ✅ | | |
- | | [Search Script Command](web-searches/search-script-command-marketplace.sh) | Search for Script Commands in the [Unofficial Raycast Script Commands Marketplace](https://scriptcommands.com). | [Alexandru Turcanu](https://github.com/Pondorasti) | ✅ | | |
+ | | [Search Rust Documentation](web-searches/search-rust-docs.sh) | Search Rust documentation | [lemorage](https://raycast.com/lemorage) | ✅ | | |
+ | | [Search Script Command](web-searches/search-script-command-marketplace.sh) | Search for Script Commands in the [Unofficial Raycast Script Commands Marketplace](https://scriptcommands.alexandru.so). | [Alexandru Turcanu](https://github.com/Pondorasti) | ✅ | | |
| | [Search Swift Code](web-searches/search-swift-github.sh) | N/A | Raycast | ✅ | | |
| | [Search Unsplash](web-searches/search-unsplash.sh) | Search [Unsplash](https://unsplash.com). | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| | [Search WP Engine Installs](web-searches/search-wpengine-installs.sh) | Search [WP Engine](https://wpengine.com) installs. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
@@ -1122,10 +1686,10 @@ This repository contains sample commands and documentation to write your own one
| 🐸 | [njt](web-searches/njt.sh) | N/A | [Zander Martineau](https://zander.wtf) | ✅ | | |
| | [npms](web-searches/npms.sh) | N/A | [Zander Martineau](https://zander.wtf) | ✅ | | |
-#### Wordpress
+#### WordPress
| Icon | Title | Description | Author | Args | Templ | Lang |
-| ---- | ----- | ----------- | ------ | ---- | ----- | ---- |
+| :--: | ----- | ----------- | :----: | :--: | :---: | :--: |
| | [Search WordPress Docs](web-searches/wordpress/search-wordpress-docs.sh) | Search [WordPress Developer documentation](https://developer.wordpress.org/reference/). | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| | [WordPress CLI Command](web-searches/wordpress/wordpress-cli-command.sh) | Open [WordPress CLI command reference](https://developer.wordpress.org/cli/commands/) for specified command. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
| | [WordPress Classes Reference](web-searches/wordpress/wordpress-classes-reference.sh) | Open [WordPress classes reference](https://developer.wordpress.org/reference/classes/) for specified class. | [Caleb Stauffer](https://github.com/crstauf) | ✅ | | |
diff --git a/commands/ai/gemini/gemini.js b/commands/ai/gemini/gemini.js
new file mode 100755
index 000000000..20eaa42d8
--- /dev/null
+++ b/commands/ai/gemini/gemini.js
@@ -0,0 +1,231 @@
+#!/usr/bin/env node
+
+// Dependencies:
+// This script requires the following software to be installed:
+// - `node` https://nodejs.org
+// - `chrome-cli` https://github.com/prasmussen/chrome-cli
+// Install via homebrew: `brew install node chrome-cli`
+
+// This script needs to run JavaScript in your browser, which requires your permission.
+// To do so, open Chrome and find the menu bar item:
+// View > Developer > Allow JavaScript from Apple Events
+
+// Required parameters:
+// @raycast.schemaVersion 1
+// @raycast.title Ask Gemini
+// @raycast.mode silent
+// @raycast.packageName Gemini
+
+// Optional parameters:
+// @raycast.icon ./images/icon-gemini.svg
+// @raycast.argument1 { "type": "text", "placeholder": "Selected Text", "optional": true }
+// @raycast.argument2 { "type": "text", "placeholder": "Prompt"}
+
+// Documentation:
+// @raycast.description Open Gemini in Chrome browser and submit a prompt with optional selected text as context
+// @raycast.author Est7
+// @raycast.authorURL https://github.com/est7
+
+// @raycast.author Nimo Beeren
+// @raycast.authorURL https://github.com/nimobeeren
+
+const { execSync } = require("child_process");
+
+const selectedText = process.argv[2] || ""; // Get the text from "Selected Text" argument, or use an empty string if argument is empty.
+const prompt = process.argv[3];
+
+process.env.OUTPUT_FORMAT = "json";
+
+/** Escape a string so that it can be used in JavaScript code when wrapped in double quotes. */
+function escapeJsString(str) {
+ return str.replaceAll(`\\`, `\\\\`).replaceAll(`"`, `\\"`);
+}
+
+/** Escape a string so that it can be used in a shell command when wrapped in single quotes. */
+function escapeShellString(str) {
+ return str.replaceAll(`'`, `'"'"'`);
+}
+
+// used to wait for Chrome to activate.
+function sleep(ms) {
+ const start = Date.now();
+ while (Date.now() - start < ms) {}
+}
+
+/**
+ * Verifies that all required dependencies are installed.
+ * Exits the process with an error message if any dependency is missing.
+ */
+function checkDependencies() {
+ // Check if Google Chrome is installed
+ try {
+ execSync("osascript -e 'tell application \"Google Chrome\" to get version'" , { stdio: "ignore" });
+ } catch {
+ try {
+ execSync("osascript -e 'tell application \"Chrome\" to get version'" , { stdio: "ignore" });
+ } catch {
+ console.error("Google Chrome is required to run this script");
+ process.exit(1);
+ }
+ }
+
+ // Check if chrome-cli is installed
+ try {
+ execSync("which chrome-cli");
+ } catch {
+ console.error(
+ "chrome-cli is required to run this script (https://github.com/prasmussen/chrome-cli)"
+ );
+ process.exit(1);
+ }
+}
+
+// Verify all dependencies are installed
+checkDependencies();
+
+// Bring Chrome to the foreground first.
+try {
+ // Try to activate Chrome through AppleScript, supporting different possible application names.
+ execSync("osascript -e 'tell application \"Google Chrome\" to activate'", {
+ stdio: "ignore",
+ });
+} catch (e) {
+ try {
+ // If the first naming method fails, try possible alternatives.
+ execSync("osascript -e 'tell application \"Chrome\" to activate'", {
+ stdio: "ignore",
+ });
+ } catch (err) {
+ console.error(
+ "Unable to activate Chrome browser, continue with other operations",
+ );
+ }
+}
+
+// Give Chrome a little time to make sure it is activated
+sleep(300);
+
+// Find the Gemini tab if one is already open
+let tabs = JSON.parse(execSync("chrome-cli list tabs")).tabs;
+let geminiTab = tabs.find((tab) =>
+ tab.url.startsWith("https://gemini.google.com/"),
+);
+
+// If there is a Gemini tab open, get its info. Otherwise, open Gemini in a new window.
+let geminiTabInfo;
+if (geminiTab) {
+ // Focus on existing tags, do not refresh the page
+ execSync(`chrome-cli activate -t ${geminiTab.id}`);
+ // Get tab info
+ geminiTabInfo = JSON.parse(execSync(`chrome-cli info -t ${geminiTab.id}`));
+} else {
+ // Open a Gemini session in a new tab, focus it and return the tab info
+ geminiTabInfo = JSON.parse(
+ execSync("chrome-cli open 'https://gemini.google.com/app'"),
+ );
+}
+
+// Wait for the tab to be loaded, then execute the script
+let interval = setInterval(() => {
+ if (geminiTabInfo.loading) {
+ geminiTabInfo = JSON.parse(
+ execSync(`chrome-cli info -t ${geminiTabInfo.id}`),
+ );
+ } else {
+ clearInterval(interval);
+ executeScript();
+ }
+}, 100);
+
+function executeScript() {
+ const script = async function (selectedText, prompt) {
+ // Wait for prompt element to be on the page
+ let promptElement;
+ await new Promise((resolve) => {
+ let interval = setInterval(() => {
+ promptElement = document.querySelector(
+ 'div[aria-label="Enter a prompt here"]',
+ );
+ if (promptElement) {
+ clearInterval(interval);
+ resolve();
+ }
+ }, 100);
+ });
+
+ // Prepare the final text
+ let finalText = "";
+ if (selectedText && selectedText.trim() !== "") {
+ finalText += `${selectedText}\n\n${prompt}`;
+ } else {
+ finalText = prompt;
+ }
+
+ // Focus the input element first
+ promptElement.focus();
+
+ // Check if there's existing content
+ const hasExistingContent = promptElement.textContent.trim() !== "";
+
+ // Clear existing content if needed - safely without innerHTML
+ if (!hasExistingContent) {
+ // If empty, we'll just add our content
+ // No need to clear anything
+ } else {
+ // If we want to append to existing content, add a newline
+ // Create a new paragraph for separation
+ const selection = window.getSelection();
+ const range = document.createRange();
+
+ // Move cursor to the end of existing content
+ range.selectNodeContents(promptElement);
+ range.collapse(false); // false means collapse to end
+ selection.removeAllRanges();
+ selection.addRange(range);
+
+ // Insert two newlines to separate content
+ document.execCommand("insertText", false, "\n\n");
+ }
+
+ // Insert the content using execCommand which is safer than innerHTML
+ // Split by newlines and insert with proper paragraph formatting
+ const paragraphs = finalText.split("\n");
+ paragraphs.forEach((paragraph, index) => {
+ if (index > 0) {
+ // Insert newline between paragraphs (not before the first one)
+ document.execCommand("insertText", false, "\n");
+ }
+
+ // Insert the paragraph text
+ document.execCommand("insertText", false, paragraph || "\u200B");
+ });
+
+ // Trigger input event to notify Gemini of changes
+ const inputEvent = new Event("input", { bubbles: true });
+ promptElement.dispatchEvent(inputEvent);
+
+ // Ensure cursor is at the end and visible
+ const selection = window.getSelection();
+ const range = document.createRange();
+ range.selectNodeContents(promptElement);
+ range.collapse(false); // false means collapse to end
+ selection.removeAllRanges();
+ selection.addRange(range);
+
+ // Scroll to make cursor visible
+ promptElement.scrollTop = promptElement.scrollHeight;
+
+ // Additional scroll after a short delay to ensure visibility
+ setTimeout(() => {
+ promptElement.scrollTop = promptElement.scrollHeight;
+ }, 100);
+ };
+
+ const functionString = escapeShellString(script.toString());
+ const selectedTextString = escapeShellString(escapeJsString(selectedText));
+ const promptString = escapeShellString(escapeJsString(prompt));
+
+ execSync(
+ `chrome-cli execute '(${functionString})(\"${selectedTextString}\", \"${promptString}\")' -t ${geminiTabInfo.id}`,
+ );
+}
diff --git a/commands/ai/gemini/images/icon-gemini.svg b/commands/ai/gemini/images/icon-gemini.svg
new file mode 100644
index 000000000..4545c8331
--- /dev/null
+++ b/commands/ai/gemini/images/icon-gemini.svg
@@ -0,0 +1,10 @@
+
diff --git a/commands/apps/Message/copycode.sh b/commands/apps/Message/copycode.sh
new file mode 100755
index 000000000..0cb5d737c
--- /dev/null
+++ b/commands/apps/Message/copycode.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Copy Code
+# @raycast.mode silent
+# @raycast.packageName Messages
+
+# Optional parameters:
+# @raycast.icon images/Message.png
+
+# Documentation:
+# @raycast.description Copy verification code from a message.
+# @raycast.author Fatpandac
+# @raycast.authorURL https://github.com/Fatpandac
+
+USERNAME=$(id -u -n)
+
+result=$(sqlite3 /Users/$USERNAME/Library/Messages/chat.db 'SELECT text FROM message WHERE datetime(date/1000000000 + 978307200,"unixepoch","localtime") > datetime("now","localtime","-60 second") ORDER BY date DESC LIMIT 1;')
+
+#You can append another `keyword` into the list to support other language Messages.
+keyword=("验证码" "code");
+keyword_regex="^(.*)(${keyword[*]/%/|})(.*)$"
+
+if [ ! $result ]; then
+ echo "No verification code received in the last 60 seconds!"
+ exit 0;
+fi
+
+if [[ "$result" =~ "$keyword_regex" ]]; then
+ code=`echo $result | grep -o "[0-9]\{4,6\}"`;
+
+ echo "$code" | pbcopy;
+ echo "$code code copied!"
+fi
+
diff --git a/commands/apps/Message/images/Message.png b/commands/apps/Message/images/Message.png
new file mode 100644
index 000000000..f240f8857
Binary files /dev/null and b/commands/apps/Message/images/Message.png differ
diff --git a/commands/apps/baremetrics/get-arpu.sh b/commands/apps/baremetrics/get-arpu.sh
new file mode 100755
index 000000000..35ba04558
--- /dev/null
+++ b/commands/apps/baremetrics/get-arpu.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# You may need to install coreutils via homebrew to make this script work (gdate function below).
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Average Revenue Per User
+# @raycast.mode inline
+# @raycast.refreshTime 1h
+
+# Optional parameters:
+# @raycast.icon images/baremetrics.png
+# @raycast.packageName Baremetrics
+
+# Documentation:
+# @raycast.description Display Average revenue per user (ARPU)
+# @raycast.author Valentin Chrétien
+# @raycast.authorURL https://github.com/valentinchrt
+
+
+# Configuration
+
+# To create a new API token, do the following:
+# 1. Go to Settings > API (https://app.baremetrics.com/settings/api)
+# 2. Copy your Live API Key
+# 3. Insert your API token below
+
+API_TOKEN=''
+
+DATE=`gdate -d yesterday '+%Y-%m-%d'`
+
+
+# Main program
+
+if [[ -z "$API_TOKEN" ]]
+then
+ echo "No API token provided"
+ exit 1
+fi
+
+ARPU_BEFORE=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/arpu?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+ARPU=$(echo "$ARPU_BEFORE * 0.01" | bc -l)
+printf "€%'.0f\n" $ARPU
\ No newline at end of file
diff --git a/commands/apps/baremetrics/get-arr.sh b/commands/apps/baremetrics/get-arr.sh
new file mode 100755
index 000000000..79e25649f
--- /dev/null
+++ b/commands/apps/baremetrics/get-arr.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# You may need to install coreutils via homebrew to make this script work (gdate function below).
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Annual Recurring Revenue
+# @raycast.mode inline
+# @raycast.refreshTime 1h
+
+# Optional parameters:
+# @raycast.icon images/baremetrics.png
+# @raycast.packageName Baremetrics
+
+# Documentation:
+# @raycast.description Display Annual Recurring Revenue (ARR)
+# @raycast.author Valentin Chrétien
+# @raycast.authorURL https://github.com/valentinchrt
+
+
+# Configuration
+
+# To create a new API token, do the following:
+# 1. Go to Settings > API (https://app.baremetrics.com/settings/api)
+# 2. Copy your Live API Key
+# 3. Insert your API token below
+
+API_TOKEN=''
+
+DATE=`gdate -d yesterday '+%Y-%m-%d'`
+
+
+# Main program
+
+if [[ -z "$API_TOKEN" ]]
+then
+ echo "No API token provided"
+ exit 1
+fi
+
+ARR_BEFORE=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/arr?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+ARR=$(echo "$ARR_BEFORE * 0.01" | bc -l)
+printf "€%'.0f\n" $ARR
\ No newline at end of file
diff --git a/commands/apps/baremetrics/get-ltv.sh b/commands/apps/baremetrics/get-ltv.sh
new file mode 100755
index 000000000..937dcf666
--- /dev/null
+++ b/commands/apps/baremetrics/get-ltv.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# You may need to install coreutils via homebrew to make this script work (gdate function below).
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Lifetime Value
+# @raycast.mode inline
+# @raycast.refreshTime 1h
+
+# Optional parameters:
+# @raycast.icon images/baremetrics.png
+# @raycast.packageName Baremetrics
+
+# Documentation:
+# @raycast.description Display Lifetime Value (LTV)
+# @raycast.author Valentin Chrétien
+# @raycast.authorURL https://github.com/valentinchrt
+
+
+# Configuration
+
+# To create a new API token, do the following:
+# 1. Go to Settings > API (https://app.baremetrics.com/settings/api)
+# 2. Copy your Live API Key
+# 3. Insert your API token below
+
+API_TOKEN=''
+
+DATE=`gdate -d yesterday '+%Y-%m-%d'`
+
+
+# Main program
+
+if [[ -z "$API_TOKEN" ]]
+then
+ echo "No API token provided"
+ exit 1
+fi
+
+LTV_BEFORE=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/ltv?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+LTV=$(echo "$LTV_BEFORE * 0.01" | bc -l)
+printf "€%'.0f\n" $LTV
\ No newline at end of file
diff --git a/commands/apps/baremetrics/get-mrr.sh b/commands/apps/baremetrics/get-mrr.sh
new file mode 100755
index 000000000..7644d31a4
--- /dev/null
+++ b/commands/apps/baremetrics/get-mrr.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# You may need to install coreutils via homebrew to make this script work (gdate function below).
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Monthly Recurring Revenue
+# @raycast.mode inline
+# @raycast.refreshTime 1h
+
+# Optional parameters:
+# @raycast.icon images/baremetrics.png
+# @raycast.packageName Baremetrics
+
+# Documentation:
+# @raycast.description Display Monthly Recurring Revenue (MRR)
+# @raycast.author Valentin Chrétien
+# @raycast.authorURL https://github.com/valentinchrt
+
+
+# Configuration
+
+# To create a new API token, do the following:
+# 1. Go to Settings > API (https://app.baremetrics.com/settings/api)
+# 2. Copy your Live API Key
+# 3. Insert your API token below
+
+API_TOKEN=''
+
+DATE=`gdate -d yesterday '+%Y-%m-%d'`
+
+
+# Main program
+
+if [[ -z "$API_TOKEN" ]]
+then
+ echo "No API token provided"
+ exit 1
+fi
+
+MRR_BEFORE=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/mrr?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+MRR=$(echo "$MRR_BEFORE * 0.01" | bc -l)
+printf "€%'.0f\n" $MRR
\ No newline at end of file
diff --git a/commands/apps/baremetrics/images/baremetrics.png b/commands/apps/baremetrics/images/baremetrics.png
new file mode 100644
index 000000000..9d3123c0e
Binary files /dev/null and b/commands/apps/baremetrics/images/baremetrics.png differ
diff --git a/commands/apps/baremetrics/simple-dashboard.sh b/commands/apps/baremetrics/simple-dashboard.sh
new file mode 100755
index 000000000..5bd72f86f
--- /dev/null
+++ b/commands/apps/baremetrics/simple-dashboard.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+# You may need to install coreutils via homebrew to make this script work (gdate function below).
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Revenue
+# @raycast.mode inline
+# @raycast.refreshTime 1h
+
+# Optional parameters:
+# @raycast.icon images/baremetrics.png
+# @raycast.packageName Baremetrics
+
+# Documentation:
+# @raycast.description Display Revenue Dashboard
+# @raycast.author Valentin Chrétien
+# @raycast.authorURL https://github.com/valentinchrt
+
+
+# Configuration
+
+# To create a new API token, do the following:
+# 1. Go to Settings > API (https://app.baremetrics.com/settings/api)
+# 2. Copy your Live API Key
+# 3. Insert your API token below
+
+API_TOKEN=''
+
+DATE=`gdate -d today '+%Y-%m-%d'`
+
+
+# Main program
+
+if [[ -z "$API_TOKEN" ]]
+then
+ echo "No API token provided"
+ exit 1
+fi
+
+ROUGH_MRR=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/mrr?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+CLEANED_MRR=$(echo "$ROUGH_MRR * 0.01" | bc -l)
+MRR=$(printf "€%'.0f\n" $CLEANED_MRR)
+
+ROUGH_ARR=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/arr?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+CLEANED_ARR=$(echo "$ROUGH_ARR * 0.01" | bc -l)
+ARR=$(printf "€%'.0f\n" $CLEANED_ARR)
+
+ROUGH_LTV=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/ltv?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+CLEANED_LTV=$(echo "$ROUGH_LTV * 0.01" | bc -l)
+LTV=$(printf "€%'.0f\n" $CLEANED_LTV)
+
+ROUGH_ARPU=$(curl -s GET \
+ --header 'Accept: application/json' \
+ --header "Authorization: Bearer ${API_TOKEN}" \
+ --url "https://api.baremetrics.com/v1/metrics/arpu?start_date=${DATE}&end_date=${DATE}" \
+ | jq '.metrics[0].value')
+
+CLEANED_ARPU=$(echo "$ROUGH_ARPU * 0.01" | bc -l)
+ARPU=$(printf "€%'.0f\n" $CLEANED_ARPU)
+
+# Display Revenue Dashboard
+echo "MRR: $MRR | ARR: $ARR | LTV: $LTV | ARPU: $ARPU"
\ No newline at end of file
diff --git a/commands/apps/bartender/bartender-search.applescript b/commands/apps/bartender/bartender-search.applescript
new file mode 100755
index 000000000..4270c4aff
--- /dev/null
+++ b/commands/apps/bartender/bartender-search.applescript
@@ -0,0 +1,23 @@
+#!/usr/bin/osascript
+
+# Note: Bartender 4 required
+# Install from https://www.macbartender.com/
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Search Bartender
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/bartender-icon.png
+# @raycast.argument1 { "type": "text", "placeholder": "Menu Bar Item Name" }
+# @raycast.packageName Bartender.app
+
+# Documentation:
+# @raycast.description Perform a quick search of Menu Bar Items, in Bartender 4
+
+on run argv
+ tell application "Bartender 4"
+ quick search with argv
+ end tell
+end run
\ No newline at end of file
diff --git a/commands/apps/bartender/images/bartender-icon.png b/commands/apps/bartender/images/bartender-icon.png
new file mode 100644
index 000000000..0804cbb1d
Binary files /dev/null and b/commands/apps/bartender/images/bartender-icon.png differ
diff --git a/commands/apps/busycal/images/busycal.png b/commands/apps/busycal/images/busycal.png
new file mode 100644
index 000000000..8671a4bf0
Binary files /dev/null and b/commands/apps/busycal/images/busycal.png differ
diff --git a/commands/apps/busycal/new-busycal-event-or-task.applescript b/commands/apps/busycal/new-busycal-event-or-task.applescript
new file mode 100755
index 000000000..05627da0c
--- /dev/null
+++ b/commands/apps/busycal/new-busycal-event-or-task.applescript
@@ -0,0 +1,28 @@
+#!/usr/bin/osascript
+
+# Dependency: This script requires `BusyCal` installed: https://www.busymac.com/busycal/
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Create Event/Task
+# @raycast.mode compact
+# @raycast.packageName BusyCal
+
+# Optional parameters:
+# @raycast.icon images/busycal.png
+# @raycast.argument1 { "type": "dropdown", "placeholder": "type", "data" : [{"title" : "event", "value": "event"}, {"title" : "task", "value": "task"}], "optional": true}
+# @raycast.argument2 { "type": "text", "placeholder": "entry", "percentEncoded": true}
+
+# Documentation:
+# @raycast.description Creates new events or tasks in BusyCal.
+# @raycast.author Annie Ma
+# @raycast.authorURL www.anniema.co
+
+on run argv
+ set query2 to (item 2 of argv)
+ tell application "BusyCal"
+ activate
+ if (item 1 of argv = "event") then open location "busycalevent://new/" & query2
+ if (item 1 of argv = "task") then open location "busycalevent://new/-" & query2
+ end tell
+end run
\ No newline at end of file
diff --git a/commands/apps/chatgpt/chatgpt-open-safari.applescript b/commands/apps/chatgpt/chatgpt-open-safari.applescript
new file mode 100755
index 000000000..c54e0fca0
--- /dev/null
+++ b/commands/apps/chatgpt/chatgpt-open-safari.applescript
@@ -0,0 +1,38 @@
+#!/usr/bin/osascript
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title chatgpt
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/chatgpt.png
+# @raycast.packageName Chatgpt Util
+
+# Documentation:
+# @raycast.description Open chatgpt in safari
+# @raycast.author gintonyc
+# @raycast.authorURL https://raycast.com/gintonyc
+
+
+tell application "Safari"
+ set targetURLPrefix to "https://chat.openai.com"
+ set foundTab to false
+
+ repeat with aWindow in windows
+ repeat with aTab in (tabs of aWindow)
+ set tabURL to URL of aTab
+ if tabURL starts with targetURLPrefix then
+ set foundTab to true
+ set current tab of aWindow to aTab
+ exit repeat
+ end if
+ end repeat
+ if foundTab then exit repeat
+ end repeat
+
+ if not foundTab then
+ make new document with properties {URL:targetURLPrefix}
+ end if
+ activate
+end tell
\ No newline at end of file
diff --git a/commands/apps/chatgpt/images/chatgpt.png b/commands/apps/chatgpt/images/chatgpt.png
new file mode 100644
index 000000000..dc0386d25
Binary files /dev/null and b/commands/apps/chatgpt/images/chatgpt.png differ
diff --git a/commands/apps/claude/claude.js b/commands/apps/claude/claude.js
new file mode 100755
index 000000000..f9adb66c8
--- /dev/null
+++ b/commands/apps/claude/claude.js
@@ -0,0 +1,127 @@
+#!/usr/bin/env node
+
+// Dependencies:
+// This script requires the following software to be installed:
+// - `node` https://nodejs.org
+// - `chrome-cli` https://github.com/prasmussen/chrome-cli
+// Install via homebrew: `brew install node chrome-cli`
+
+// This script needs to run JavaScript in your browser, which requires your permission.
+// To do so, open Chrome and find the menu bar item:
+// View > Developer > Allow JavaScript from Apple Events
+
+// Required parameters:
+// @raycast.schemaVersion 1
+// @raycast.title Ask Claude
+// @raycast.mode silent
+// @raycast.packageName Claude
+
+// Optional parameters:
+// @raycast.icon ✨
+// @raycast.argument1 { "type": "text", "placeholder": "Prompt"}
+
+// Documentation:
+// @raycast.description Open Claude in Chrome browser and submit a prompt
+// @raycast.author Nimo Beeren
+// @raycast.authorURL https://github.com/nimobeeren
+
+const { execSync } = require("child_process");
+
+const prompt = process.argv[2];
+
+process.env.OUTPUT_FORMAT = "json";
+
+/** Escape a string so that it can be used in JavaScript code when wrapped in double quotes. */
+function escapeJsString(str) {
+ return str.replaceAll(`\\`, `\\\\`).replaceAll(`"`, `\\"`);
+}
+
+/** Escape a string so that it can be used in a shell command when wrapped in single quotes. */
+function escapeShellString(str) {
+ return str.replaceAll(`'`, `'"'"'`);
+}
+
+try {
+ execSync("which chrome-cli");
+} catch {
+ console.error(
+ "chrome-cli is required to run this script (https://github.com/prasmussen/chrome-cli)"
+ );
+ process.exit(1);
+}
+
+// Find the Claude tab if one is already open
+let tabs = JSON.parse(execSync("chrome-cli list tabs")).tabs;
+let claudeTab = tabs.find((tab) => tab.url.startsWith("https://claude.ai/"));
+
+// If there is a Claude tab open, get its info. Otherwise, open Claude in a new
+// window.
+let claudeTabInfo;
+if (claudeTab) {
+ // Open a new Claude session in the existing tab and focus it
+ execSync(`chrome-cli open 'https://claude.ai/new' -t ${claudeTab.id}`);
+ // Get tab info
+ claudeTabInfo = JSON.parse(execSync(`chrome-cli info -t ${claudeTab.id}`));
+} else {
+ // Open a Claude session in a new tab, focus it and return the tab info
+ claudeTabInfo = JSON.parse(
+ execSync("chrome-cli open 'https://claude.ai/new'")
+ );
+}
+
+// Wait for the tab to be loaded, then execute the script
+let interval = setInterval(() => {
+ if (claudeTabInfo.loading) {
+ claudeTabInfo = JSON.parse(
+ execSync(`chrome-cli info -t ${claudeTabInfo.id}`)
+ );
+ } else {
+ clearInterval(interval);
+ executeScript();
+ }
+}, 100);
+
+function executeScript() {
+ const script = async function (prompt) {
+ // Wait for prompt element to be on the page
+ let promptElement;
+ await new Promise((resolve) => {
+ let interval = setInterval(() => {
+ promptElement = document.querySelector(
+ '[aria-label="Write your prompt to Claude"] > div'
+ );
+ if (promptElement) {
+ clearInterval(interval);
+ resolve();
+ }
+ }, 100);
+ });
+
+ // Set the prompt
+ const p = document.createElement("p");
+ p.textContent = prompt;
+ promptElement.replaceChildren(p);
+
+ // Wait for submit button to be on the page
+ let submitButton;
+ await new Promise((resolve) => {
+ let interval = setInterval(() => {
+ submitButton = document.querySelector('[aria-label="Send Message"]');
+ if (submitButton) {
+ clearInterval(interval);
+ resolve();
+ }
+ }, 100);
+ });
+
+ // Submit the prompt
+ submitButton.click();
+ };
+
+ const functionString = escapeShellString(script.toString());
+ const promptString = escapeShellString(escapeJsString(prompt));
+
+ execSync(
+ `chrome-cli execute '(${functionString})("${promptString}")' -t ${claudeTabInfo.id}`
+ );
+}
diff --git a/commands/apps/cleanshot/cleanshot-record-screen-with-keystroke-pro.sh b/commands/apps/cleanshot/cleanshot-record-screen-with-keystroke-pro.sh
new file mode 100755
index 000000000..d2a4d543f
--- /dev/null
+++ b/commands/apps/cleanshot/cleanshot-record-screen-with-keystroke-pro.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# Note: CleanShot X required
+# Install from https://cleanshot.com
+#
+# Keystroke Pro required
+# Install from https://apps.apple.com/app/id1572206224?ct=ixeau
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Record Screen With Keystroke Pro
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/record-screen-keystroke-pro.png
+# @raycast.packageName CleanShot X
+
+# Documentation:
+# @raycast.author Danylo Zalizchuk
+# @raycast.authorURL https://raycast.com/danulqua
+# @raycast.description Start a screen recording with keystrokes using the Keystroke Pro app and save it as a video or an optimized GIF file.
+
+open "/Applications/Keystroke Pro.app"
+open "cleanshot://record-screen"
diff --git a/commands/apps/cleanshot/images/add-quick-access-overlay.png b/commands/apps/cleanshot/images/add-quick-access-overlay.png
index 09cd39f6a..a0de5661c 100644
Binary files a/commands/apps/cleanshot/images/add-quick-access-overlay.png and b/commands/apps/cleanshot/images/add-quick-access-overlay.png differ
diff --git a/commands/apps/cleanshot/images/annotate.png b/commands/apps/cleanshot/images/annotate.png
index 21dba96be..4a249c54c 100644
Binary files a/commands/apps/cleanshot/images/annotate.png and b/commands/apps/cleanshot/images/annotate.png differ
diff --git a/commands/apps/cleanshot/images/capture-area.png b/commands/apps/cleanshot/images/capture-area.png
index 9cd3d6832..ccd895fdc 100644
Binary files a/commands/apps/cleanshot/images/capture-area.png and b/commands/apps/cleanshot/images/capture-area.png differ
diff --git a/commands/apps/cleanshot/images/capture-fullscreen.png b/commands/apps/cleanshot/images/capture-fullscreen.png
index 224f78460..31673a8e3 100644
Binary files a/commands/apps/cleanshot/images/capture-fullscreen.png and b/commands/apps/cleanshot/images/capture-fullscreen.png differ
diff --git a/commands/apps/cleanshot/images/capture-previous-area.png b/commands/apps/cleanshot/images/capture-previous-area.png
index fa89ee956..615e21472 100644
Binary files a/commands/apps/cleanshot/images/capture-previous-area.png and b/commands/apps/cleanshot/images/capture-previous-area.png differ
diff --git a/commands/apps/cleanshot/images/capture-text.png b/commands/apps/cleanshot/images/capture-text.png
index 187662587..55fa31be7 100644
Binary files a/commands/apps/cleanshot/images/capture-text.png and b/commands/apps/cleanshot/images/capture-text.png differ
diff --git a/commands/apps/cleanshot/images/capture-window.png b/commands/apps/cleanshot/images/capture-window.png
index 0f2868041..2c461343f 100644
Binary files a/commands/apps/cleanshot/images/capture-window.png and b/commands/apps/cleanshot/images/capture-window.png differ
diff --git a/commands/apps/cleanshot/images/clipboard.png b/commands/apps/cleanshot/images/clipboard.png
index be7f4b52e..f38f19791 100644
Binary files a/commands/apps/cleanshot/images/clipboard.png and b/commands/apps/cleanshot/images/clipboard.png differ
diff --git a/commands/apps/cleanshot/images/pin.png b/commands/apps/cleanshot/images/pin.png
index 751eb48c2..23aa66e52 100644
Binary files a/commands/apps/cleanshot/images/pin.png and b/commands/apps/cleanshot/images/pin.png differ
diff --git a/commands/apps/cleanshot/images/record-screen-keystroke-pro.png b/commands/apps/cleanshot/images/record-screen-keystroke-pro.png
new file mode 100644
index 000000000..91d2a2c05
Binary files /dev/null and b/commands/apps/cleanshot/images/record-screen-keystroke-pro.png differ
diff --git a/commands/apps/cleanshot/images/record-screen.png b/commands/apps/cleanshot/images/record-screen.png
index 95d2facfa..64f3dcc2e 100644
Binary files a/commands/apps/cleanshot/images/record-screen.png and b/commands/apps/cleanshot/images/record-screen.png differ
diff --git a/commands/apps/cleanshot/images/restore.png b/commands/apps/cleanshot/images/restore.png
index 5b09bbe5e..6679c8eb5 100644
Binary files a/commands/apps/cleanshot/images/restore.png and b/commands/apps/cleanshot/images/restore.png differ
diff --git a/commands/apps/cleanshot/images/scrolling-capture.png b/commands/apps/cleanshot/images/scrolling-capture.png
index 2148dc29b..8efb5258e 100644
Binary files a/commands/apps/cleanshot/images/scrolling-capture.png and b/commands/apps/cleanshot/images/scrolling-capture.png differ
diff --git a/commands/apps/cleanshot/images/self-timer.png b/commands/apps/cleanshot/images/self-timer.png
index ccb96d8da..08cbe4321 100644
Binary files a/commands/apps/cleanshot/images/self-timer.png and b/commands/apps/cleanshot/images/self-timer.png differ
diff --git a/commands/apps/cleanshot/images/toggle-desktop-icons.png b/commands/apps/cleanshot/images/toggle-desktop-icons.png
index cf516bd55..e3451583b 100644
Binary files a/commands/apps/cleanshot/images/toggle-desktop-icons.png and b/commands/apps/cleanshot/images/toggle-desktop-icons.png differ
diff --git a/commands/apps/craft/images/craft.png b/commands/apps/craft/images/craft.png
index f3631556e..47c965396 100644
Binary files a/commands/apps/craft/images/craft.png and b/commands/apps/craft/images/craft.png differ
diff --git a/commands/apps/deepl/deepl-app-translate.applescript b/commands/apps/deepl/deepl-app-translate.applescript
index c6094b8a1..235e7634e 100755
--- a/commands/apps/deepl/deepl-app-translate.applescript
+++ b/commands/apps/deepl/deepl-app-translate.applescript
@@ -1,7 +1,7 @@
#!/usr/bin/osascript
# Dependency: This script requires DeepL to be installed: https://deepl.com/app
-# Tested with DeepL for Mac Version 2.3.41773
+# Tested with DeepL for Mac Version 3.1.133440
# Once installed, DeepL will run in the background even if you quit the app from the dock
# This script will work as long as the DeepL icon is visible in the menu bar in the top right
@@ -47,7 +47,7 @@ on run translate
end if
tell application "System Events"
- set value of text area 1 of group 5 of UI element 1 of scroll area 1 of group 1 of group 1 of window "DeepL" of process "DeepL" to inputText
+ set value of text area 1 of group 3 of group 1 of group 1 of UI Element 1 of scroll area 1 of group 1 of group 1 of window "DeepL" of process "DeepL" to inputText
end tell
if copyResultToClipboard is true then
@@ -57,7 +57,11 @@ on run translate
tell application "System Events"
repeat until translation is not ""
- set translation to value of text area 1 of group 12 of UI element 1 of scroll area 1 of group 1 of group 1 of window "DeepL" of process "DeepL"
+
+ if exists of text area 1 of group 6 of group 3 of group 1 of UI Element 1 of scroll area 1 of group 1 of group 1 of window "DeepL" of process "DeepL"
+ set translation to value of text area 1 of group 6 of group 3 of group 1 of UI Element 1 of scroll area 1 of group 1 of group 1 of window "DeepL" of process "DeepL"
+ end if
+
if ((current date) > endDate) then
exit repeat
end if
@@ -65,7 +69,9 @@ on run translate
end repeat
end tell
- set the clipboard to translation
+ if translation is not ""
+ set the clipboard to translation
+ end if
end if
end run
\ No newline at end of file
diff --git a/commands/apps/deepl/images/deepl.png b/commands/apps/deepl/images/deepl.png
index 12bf69809..f1cce3041 100644
Binary files a/commands/apps/deepl/images/deepl.png and b/commands/apps/deepl/images/deepl.png differ
diff --git a/commands/apps/devutils/backslash.sh b/commands/apps/devutils/backslash.sh
new file mode 100755
index 000000000..3ff0c60b5
--- /dev/null
+++ b/commands/apps/devutils/backslash.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Backslash Escape/Unescape
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Escape (or unescape) backslashes in your current clipboard string
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://backslash?clipboard
diff --git a/commands/apps/devutils/base64encode.sh b/commands/apps/devutils/base64encode.sh
new file mode 100755
index 000000000..9e7c82963
--- /dev/null
+++ b/commands/apps/devutils/base64encode.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Base64 String Encode/Decode
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Decode the Base64 string in clipboard (if it’s decodable)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://base64encode?clipboard
diff --git a/commands/apps/devutils/base64image.sh b/commands/apps/devutils/base64image.sh
new file mode 100755
index 000000000..df8d9e4a4
--- /dev/null
+++ b/commands/apps/devutils/base64image.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Base64 Image Encode/Decode
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Decode the Base64 string in clipboard to an image (if it’s decodable)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://base64image?clipboard
diff --git a/commands/apps/devutils/cronparser.sh b/commands/apps/devutils/cronparser.sh
new file mode 100755
index 000000000..d563d7f4e
--- /dev/null
+++ b/commands/apps/devutils/cronparser.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Cron Job Parser
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Parse the cron job expression in clipboard (if it’s a valid cron expression)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://cronparser?clipboard
diff --git a/commands/apps/devutils/cssformatter.sh b/commands/apps/devutils/cssformatter.sh
new file mode 100755
index 000000000..eb1a320f5
--- /dev/null
+++ b/commands/apps/devutils/cssformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title CSS Beautify/Minify
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Beautify or minify your current clipboard as CSS
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://cssformatter?clipboard
diff --git a/commands/apps/devutils/csv2json.sh b/commands/apps/devutils/csv2json.sh
new file mode 100755
index 000000000..624e65591
--- /dev/null
+++ b/commands/apps/devutils/csv2json.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title CSV to JSON
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Convert your current clipboard from CSV to JSON
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://csv2json?clipboard
diff --git a/commands/apps/devutils/erbformatter.sh b/commands/apps/devutils/erbformatter.sh
new file mode 100755
index 000000000..7a87ed390
--- /dev/null
+++ b/commands/apps/devutils/erbformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title ERB Beautify/Minify
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Beautify or minify your current clipboard as ERB
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://erbformatter?clipboard
diff --git a/commands/apps/devutils/hashing.sh b/commands/apps/devutils/hashing.sh
new file mode 100755
index 000000000..8d302ba6c
--- /dev/null
+++ b/commands/apps/devutils/hashing.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Hash Generator
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Calculate the hash of your current clipboard string
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://hashing?clipboard
diff --git a/commands/apps/devutils/html2jsx.sh b/commands/apps/devutils/html2jsx.sh
new file mode 100755
index 000000000..91b95c95d
--- /dev/null
+++ b/commands/apps/devutils/html2jsx.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title HTML to JSX
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Convert the HTML string in clipboard to JSX
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://html2jsx?clipboard
diff --git a/commands/apps/devutils/htmlencode.sh b/commands/apps/devutils/htmlencode.sh
new file mode 100755
index 000000000..6d5bd97f1
--- /dev/null
+++ b/commands/apps/devutils/htmlencode.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title HTML Entity Encode/Decode
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Escape (or unescape) the HTML entities your current clipboard string
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://htmlencode?clipboard
diff --git a/commands/apps/devutils/htmlformatter.sh b/commands/apps/devutils/htmlformatter.sh
new file mode 100755
index 000000000..8f0c1baa5
--- /dev/null
+++ b/commands/apps/devutils/htmlformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title HTML Beautify/Minify
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Beautify or minify your current clipboard as HTML
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://htmlformatter?clipboard
diff --git a/commands/apps/devutils/htmlpreview.sh b/commands/apps/devutils/htmlpreview.sh
new file mode 100755
index 000000000..c8132f5a5
--- /dev/null
+++ b/commands/apps/devutils/htmlpreview.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title HTML Preview
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Show a HTML preview of your current clipboard string
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://htmlpreview?clipboard
diff --git a/commands/apps/devutils/images/devutils.png b/commands/apps/devutils/images/devutils.png
new file mode 100644
index 000000000..bc3ac2048
Binary files /dev/null and b/commands/apps/devutils/images/devutils.png differ
diff --git a/commands/apps/devutils/jsformatter.sh b/commands/apps/devutils/jsformatter.sh
new file mode 100755
index 000000000..0518254b5
--- /dev/null
+++ b/commands/apps/devutils/jsformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title JS Beautify/Minify
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Beautify or minify your current clipboard as JavaScript
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://jsformatter?clipboard
diff --git a/commands/apps/devutils/json2csv.sh b/commands/apps/devutils/json2csv.sh
new file mode 100755
index 000000000..51db45228
--- /dev/null
+++ b/commands/apps/devutils/json2csv.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title JSON to CSV
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Convert your current clipboard from JSON to CSV
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://json2csv?clipboard
diff --git a/commands/apps/devutils/json2yaml.sh b/commands/apps/devutils/json2yaml.sh
new file mode 100755
index 000000000..63110b3f4
--- /dev/null
+++ b/commands/apps/devutils/json2yaml.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title JSON to YAML
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Convert your current clipboard from JSON to YAML
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://json2yaml?clipboard
diff --git a/commands/apps/devutils/jsonformatter.sh b/commands/apps/devutils/jsonformatter.sh
new file mode 100755
index 000000000..52059fa94
--- /dev/null
+++ b/commands/apps/devutils/jsonformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title JSON Format/Validate
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Format the JSON string currently in your clipboard (if it’s a valid JSON)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://jsonformatter?clipboard
diff --git a/commands/apps/devutils/jwt.sh b/commands/apps/devutils/jwt.sh
new file mode 100755
index 000000000..cb7c3c84a
--- /dev/null
+++ b/commands/apps/devutils/jwt.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title JWT Debugger
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Decode and verify the current JWT token in your clipboard
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://jwt?clipboard
diff --git a/commands/apps/devutils/lessformatter.sh b/commands/apps/devutils/lessformatter.sh
new file mode 100755
index 000000000..5cc0911b7
--- /dev/null
+++ b/commands/apps/devutils/lessformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title LESS Beautify/Minify
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Beautify or minify your current clipboard as LESS
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://lessformatter?clipboard
diff --git a/commands/apps/devutils/loremipsum.sh b/commands/apps/devutils/loremipsum.sh
new file mode 100755
index 000000000..a90e7954e
--- /dev/null
+++ b/commands/apps/devutils/loremipsum.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Lorem Ipsum Generator
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Get some randomly generated lorem ipsum strings
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://loremipsum?clipboard
diff --git a/commands/apps/devutils/markdownpreview.sh b/commands/apps/devutils/markdownpreview.sh
new file mode 100755
index 000000000..574911ff2
--- /dev/null
+++ b/commands/apps/devutils/markdownpreview.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Markdown Preview
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Preview the markdown string currently in your clipboard
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://markdownpreview?clipboard
diff --git a/commands/apps/devutils/numberbase.sh b/commands/apps/devutils/numberbase.sh
new file mode 100755
index 000000000..0ca5b90b4
--- /dev/null
+++ b/commands/apps/devutils/numberbase.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Number Base Converter
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Convert numbers between bases (oct, hex, binary, etc.)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://numberbase?clipboard
diff --git a/commands/apps/devutils/qrcode.sh b/commands/apps/devutils/qrcode.sh
new file mode 100755
index 000000000..02db9894b
--- /dev/null
+++ b/commands/apps/devutils/qrcode.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title QR Code Reader/Generator
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Generate a QR code from your current clipboard string
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://qrcode?clipboard
diff --git a/commands/apps/devutils/querystringparser.sh b/commands/apps/devutils/querystringparser.sh
new file mode 100755
index 000000000..0a2c39d8b
--- /dev/null
+++ b/commands/apps/devutils/querystringparser.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title URL Parser
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Parse the URL string currently in your clipboard
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://querystringparser?clipboard
diff --git a/commands/apps/devutils/regextester.sh b/commands/apps/devutils/regextester.sh
new file mode 100755
index 000000000..05a4e385d
--- /dev/null
+++ b/commands/apps/devutils/regextester.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title RegExp Tester
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Test your regular expression with a string and inspect matches, groups, etc.
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://regextester?clipboard
diff --git a/commands/apps/devutils/scssformatter.sh b/commands/apps/devutils/scssformatter.sh
new file mode 100755
index 000000000..270c5bfc3
--- /dev/null
+++ b/commands/apps/devutils/scssformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title SCSS Beautify/Minify
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Beautify or minify your current clipboard as SCSS
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://scssformatter?clipboard
diff --git a/commands/apps/devutils/sqlformatter.sh b/commands/apps/devutils/sqlformatter.sh
new file mode 100755
index 000000000..b0c226940
--- /dev/null
+++ b/commands/apps/devutils/sqlformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title SQL Formatter
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Format the SQL string currently in your clipboard
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://sqlformatter?clipboard
diff --git a/commands/apps/devutils/stringcaseconverter.sh b/commands/apps/devutils/stringcaseconverter.sh
new file mode 100755
index 000000000..2ae092ad9
--- /dev/null
+++ b/commands/apps/devutils/stringcaseconverter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title String Case Converter
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Convert a string in clipboard into various naming conventions
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://stringcaseconverter?clipboard
diff --git a/commands/apps/devutils/stringinspect.sh b/commands/apps/devutils/stringinspect.sh
new file mode 100755
index 000000000..08099a079
--- /dev/null
+++ b/commands/apps/devutils/stringinspect.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title String Inspector
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Inspect your current clipboard string (length, words count, unicode, etc.)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://stringinspect?clipboard
diff --git a/commands/apps/devutils/textdiff.sh b/commands/apps/devutils/textdiff.sh
new file mode 100755
index 000000000..dd9ce842e
--- /dev/null
+++ b/commands/apps/devutils/textdiff.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Text Diff Checker
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Compare two texts and find diff (per characters, words, lines, etc.)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://textdiff?clipboard
diff --git a/commands/apps/devutils/unixtime.sh b/commands/apps/devutils/unixtime.sh
new file mode 100755
index 000000000..97bea637d
--- /dev/null
+++ b/commands/apps/devutils/unixtime.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title Unix Time Converter
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Parse and display UNIX the timestamp string currently in your clipboard
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://unixtime?clipboard
diff --git a/commands/apps/devutils/urlencode.sh b/commands/apps/devutils/urlencode.sh
new file mode 100755
index 000000000..1c13ce18b
--- /dev/null
+++ b/commands/apps/devutils/urlencode.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title URL Encode/Decode
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Decode the current URL string in your clipboard (if any)
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://urlencode?clipboard
diff --git a/commands/apps/devutils/uuidtool.sh b/commands/apps/devutils/uuidtool.sh
new file mode 100755
index 000000000..66923e435
--- /dev/null
+++ b/commands/apps/devutils/uuidtool.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title UUID/ULID Generate/Decode
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Decode the UUID in your clipboard (if any), or generate UUIDs
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://uuidtool?clipboard
diff --git a/commands/apps/devutils/xmlformatter.sh b/commands/apps/devutils/xmlformatter.sh
new file mode 100755
index 000000000..04a56537e
--- /dev/null
+++ b/commands/apps/devutils/xmlformatter.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title XML Beautify/Minify
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Beautify or minify your current clipboard as XML
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://xmlformatter?clipboard
diff --git a/commands/apps/devutils/yaml2json.sh b/commands/apps/devutils/yaml2json.sh
new file mode 100755
index 000000000..c7b763c59
--- /dev/null
+++ b/commands/apps/devutils/yaml2json.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.icon images/devutils.png
+# @raycast.title YAML to JSON
+# @raycast.mode silent
+# @raycast.packageName DevUtils.app
+
+# Documentation:
+# @raycast.description Convert your current clipboard from YAML to JSON
+# @raycast.author DevUtils.app
+# @raycast.authorURL https://devutils.app
+
+open devutils://yaml2json?clipboard
diff --git a/commands/apps/dictionary/images/dictionary.icns b/commands/apps/dictionary/images/dictionary.icns
new file mode 100644
index 000000000..15ff65526
Binary files /dev/null and b/commands/apps/dictionary/images/dictionary.icns differ
diff --git a/commands/apps/dictionary/look-up-in-dictionary.applescript b/commands/apps/dictionary/look-up-in-dictionary.applescript
new file mode 100755
index 000000000..ae45bba0e
--- /dev/null
+++ b/commands/apps/dictionary/look-up-in-dictionary.applescript
@@ -0,0 +1,22 @@
+#!/usr/bin/osascript
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Look up in Dictionary
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/dictionary.icns
+# @raycast.packageName Dictionary
+
+# Documentation:
+# @raycast.description Look up selected text in Dictionary
+# @raycast.author yayiji
+# @raycast.authorURL https://github.com/yayiji
+
+tell application "System Events"
+ keystroke "c" using {command down}
+ delay 0.1
+ do shell script "open dict://" & the clipboard
+end
+
diff --git a/commands/apps/downie/download-video.sh b/commands/apps/downie/download-video.sh
new file mode 100755
index 000000000..800158baf
--- /dev/null
+++ b/commands/apps/downie/download-video.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Download Video
+# @raycast.mode silent
+# Optional parameters:
+# @raycast.icon images/downie.png
+# @raycast.packageName Downie
+
+# Documentation:
+# @raycast.description Download video from Pasteboard link
+# @raycast.author Clu Soh
+# @raycast.authorURL https://twitter.com/designedbyclu
+
+regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
+pasteboard=$(pbpaste)
+
+if [[ $pasteboard =~ $regex ]]
+then
+ open "downie://XUOpenLink?url=$pasteboard"
+ echo "Downloading in Downie"
+else
+ echo "Seem like is not a URL you copied"
+fi
+
+
+
+
diff --git a/commands/apps/downie/images/downie.png b/commands/apps/downie/images/downie.png
new file mode 100644
index 000000000..10710511d
Binary files /dev/null and b/commands/apps/downie/images/downie.png differ
diff --git a/commands/apps/espanso/images/espanso.png b/commands/apps/espanso/images/espanso.png
index f442ede66..c9a2794b0 100644
Binary files a/commands/apps/espanso/images/espanso.png and b/commands/apps/espanso/images/espanso.png differ
diff --git a/commands/apps/eudic/images/eudic.png b/commands/apps/eudic/images/eudic.png
new file mode 100644
index 000000000..dc156d2b6
Binary files /dev/null and b/commands/apps/eudic/images/eudic.png differ
diff --git a/commands/apps/eudic/look-up-in-eudic.applescript b/commands/apps/eudic/look-up-in-eudic.applescript
new file mode 100755
index 000000000..d34bf73aa
--- /dev/null
+++ b/commands/apps/eudic/look-up-in-eudic.applescript
@@ -0,0 +1,29 @@
+#!/usr/bin/osascript
+
+# Dependency: Eudic required
+# Install via Mac App Store: https://apps.apple.com/app/id402380914
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Look up Word
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/eudic.png
+# @raycast.argument1 { "type": "text", "placeholder": "word" }
+# @raycast.packageName Eudic
+
+# Documentation:
+# @raycast.description look up in eudic
+# @raycast.author jingyi
+# @raycast.authorURL https://jingyi.blog
+
+on run argv
+ # FIXME known issue of Eudic. Force open it
+ do shell script "open -b com.eusoft.eudic"
+ do shell script "open -b com.eusoft.eudic"
+ tell application id "com.eusoft.eudic"
+ activate
+ show dic with word (item 1 of argv)
+ end tell
+end run
diff --git a/commands/apps/evernote/images/evernote.png b/commands/apps/evernote/images/evernote.png
index 55e299c5d..7281a5ba5 100644
Binary files a/commands/apps/evernote/images/evernote.png and b/commands/apps/evernote/images/evernote.png differ
diff --git a/commands/apps/expressvpn/expressvpn-connect.applescript b/commands/apps/expressvpn/expressvpn-connect.applescript
new file mode 100755
index 000000000..df6e770ff
--- /dev/null
+++ b/commands/apps/expressvpn/expressvpn-connect.applescript
@@ -0,0 +1,26 @@
+#!/usr/bin/osascript
+
+# You need ExpressVPN for this script: https://www.expressvpn.com/latest#mac
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Connect
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/expressvpn_logo.svg
+# @raycast.packageName ExpressVPN
+
+# Documentation:
+# @raycast.author Amir Hossein SamadiPour
+# @raycast.authorURL https://github.com/SamadiPour
+
+tell application "ExpressVPN"
+ if state = "connected" then
+ do shell script "echo Already Connected."
+ else if state = "connecting" then
+ do shell script "echo Please wait. Connecting..."
+ else if state = "ready" then
+ connect
+ end if
+end tell
diff --git a/commands/apps/expressvpn/expressvpn-disconnect.applescript b/commands/apps/expressvpn/expressvpn-disconnect.applescript
new file mode 100755
index 000000000..3c2e5bc78
--- /dev/null
+++ b/commands/apps/expressvpn/expressvpn-disconnect.applescript
@@ -0,0 +1,24 @@
+#!/usr/bin/osascript
+
+# You need ExpressVPN for this script: https://www.expressvpn.com/latest#mac
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Disconnect
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/expressvpn_logo.svg
+# @raycast.packageName ExpressVPN
+
+# Documentation:
+# @raycast.author Amir Hossein SamadiPour
+# @raycast.authorURL https://github.com/SamadiPour
+
+tell application "ExpressVPN"
+ if state = "connected" or state = "connecting" then
+ disconnect
+ else if state = "ready" then
+ do shell script "echo Already Disconnected..."
+ end if
+end tell
diff --git a/commands/apps/expressvpn/expressvpn-reconnect.applescript b/commands/apps/expressvpn/expressvpn-reconnect.applescript
new file mode 100755
index 000000000..58a38b287
--- /dev/null
+++ b/commands/apps/expressvpn/expressvpn-reconnect.applescript
@@ -0,0 +1,27 @@
+#!/usr/bin/osascript
+
+# You need ExpressVPN for this script: https://www.expressvpn.com/latest#mac
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Reconnect
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/expressvpn_logo.svg
+# @raycast.packageName ExpressVPN
+
+# Documentation:
+# @raycast.author Amir Hossein SamadiPour
+# @raycast.authorURL https://github.com/SamadiPour
+
+tell application "ExpressVPN"
+ if state = "connected" and not (state = "connecting") then
+ disconnect
+ delay 0.5
+ connect
+ else if state = "ready" then
+ connect
+ end if
+end tell
+do shell script "echo Reconnecting..."
diff --git a/commands/apps/expressvpn/images/expressvpn_logo.svg b/commands/apps/expressvpn/images/expressvpn_logo.svg
new file mode 100644
index 000000000..80f9afe24
--- /dev/null
+++ b/commands/apps/expressvpn/images/expressvpn_logo.svg
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/commands/apps/ferdi/images/ferdi.png b/commands/apps/ferdi/images/ferdi.png
index a30e18384..68ebc011a 100644
Binary files a/commands/apps/ferdi/images/ferdi.png and b/commands/apps/ferdi/images/ferdi.png differ
diff --git a/commands/apps/find-my/.env.example b/commands/apps/find-my/.env.example
new file mode 100644
index 000000000..6e3a6c985
--- /dev/null
+++ b/commands/apps/find-my/.env.example
@@ -0,0 +1,3 @@
+ICLOUD_EMAIL=
+ICLOUD_PASSWORD=
+DEVICE=
\ No newline at end of file
diff --git a/commands/apps/find-my/README.md b/commands/apps/find-my/README.md
new file mode 100644
index 000000000..55057353e
--- /dev/null
+++ b/commands/apps/find-my/README.md
@@ -0,0 +1,58 @@
+# Find My Phone Raycast
+
+I lose my phone often, so I made this.
+
+This is a Node.js script that uses Playwright to automate iCloud Find My and trigger a sound on your Apple device. It's perfect for people like me who misplace their phones and want a quick, automated way to make them ring—with Raycast.
+
+## Usage
+
+```sh
+git clone https://github.com/vsvaidya27/fmp-raycast
+cd fmp-raycast
+npm install
+cp .env.example .env
+# Edit .env with your real credentials
+chmod +x fmp.js
+```
+
+### Add to Raycast
+
+1. Open Raycast and go to **Extensions**.
+2. Click **Add**.
+3. Select **Add Script Directory**.
+4. Choose the `fmp-raycast` directory you just cloned.
+5. Set fmp as your alias for calling the script.
+
+Now you can trigger the script directly from Raycast!
+
+## How it works
+
+- Automates login to iCloud Find My using Playwright
+- Selects your device by name
+- Triggers the "Play Sound" feature to help you locate your device
+
+**Note:** You'll need to provide your iCloud credentials and device name in the `.env` file. Sometimes a 2FA check may pop up, but usually they allow you to bypass this and manual intervention is not neccesary (since you often need the very thing you are trying to find for 2FA).
+
+---
+
+## 🛠 Troubleshooting
+
+### If you get the error `env: node: No such file or directory`
+
+Raycast uses a limited shell environment, so it may not find your Node.js install.
+
+To fix it:
+
+1. Run this in Terminal to find your full Node path:
+ ```bash
+ which node
+ ```
+2. Edit the top of `fmp.js`:
+ Replace:
+ ```sh
+ #!/usr/bin/env node
+ ```
+ With:
+ ```sh
+ #!/full/path/to/node
+ ```
diff --git a/commands/apps/find-my/fmp.js b/commands/apps/find-my/fmp.js
new file mode 100755
index 000000000..e672b032b
--- /dev/null
+++ b/commands/apps/find-my/fmp.js
@@ -0,0 +1,62 @@
+#!/usr/bin/env node
+
+// Required parameters:
+// @raycast.schemaVersion 1
+// @raycast.title Find My Phone (Auto Sound)
+// @raycast.mode silent
+// @raycast.packageName FindMy
+// @raycast.icon images/find-my-icon.png
+
+require('dotenv').config();
+const { chromium } = require('playwright');
+
+(async () => {
+ const browser = await chromium.launch({ headless: false });
+ const page = await browser.newPage();
+
+ // 1. Go to iCloud Find Devices
+ await page.goto('https://www.icloud.com/find');
+
+ // 2. Click "Sign In"
+ await page.waitForSelector('text=Sign In', { timeout: 20000 });
+ await page.click('text=Sign In');
+
+ // 3. Wait for the Apple login iframe to appear
+ const frameLocator = page.frameLocator('iframe[name="aid-auth-widget"]');
+
+ // 4. Wait for the email/phone input inside the iframe
+ await frameLocator.getByRole('textbox', { name: 'Email or Phone Number' }).waitFor({ timeout: 20000 });
+
+ // 5. Fill in the email/phone
+ await frameLocator.getByRole('textbox', { name: 'Email or Phone Number' }).fill(process.env.ICLOUD_EMAIL);
+
+ // 6. Click the right-arrow button
+ await frameLocator.getByRole('button').first().click();
+
+ // 7. Wait for the "Continue with Password" button to appear, then click it
+ await frameLocator.getByRole('button', { name: /Continue with Password/i }).waitFor({ timeout: 20000 });
+ await frameLocator.getByRole('button', { name: /Continue with Password/i }).click();
+
+ // 8. Wait for password input
+ await frameLocator.getByRole('textbox', { name: 'Password' }).waitFor({ timeout: 20000 });
+ await frameLocator.getByRole('textbox', { name: 'Password' }).fill(process.env.ICLOUD_PASSWORD);
+
+ // 9. Click the arrow button to continue
+ await frameLocator.getByRole('button').first().click();
+
+ // 10. Wait for 2FA if needed; Hopefully not because this kinda defeats the purpose of automation even though its prob for the best security-wise :(
+ console.log('If prompted, please complete 2FA in the browser window. :(');
+
+ // 12. Click on your iPhone using the precise selector inside the second iframe
+ await page.locator('iframe').nth(1).contentFrame().getByTitle(process.env.DEVICE).getByTestId('show-device-name').click();
+
+ // 13. Wait for the device details panel to load
+ await page.waitForTimeout(2000);
+
+ // 14. Click the "Play Sound" button
+ await page.locator('iframe').nth(1).contentFrame().getByRole('button', { name: 'Play Sound' }).click();
+
+ console.log('✅ Play Sound triggered for ' + process.env.DEVICE + '!');
+ await browser.close();
+})();
+
diff --git a/commands/apps/find-my/images/find-my-icon.png b/commands/apps/find-my/images/find-my-icon.png
new file mode 100644
index 000000000..0862bfec8
Binary files /dev/null and b/commands/apps/find-my/images/find-my-icon.png differ
diff --git a/commands/apps/find-my/package.json b/commands/apps/find-my/package.json
new file mode 100644
index 000000000..6e278971c
--- /dev/null
+++ b/commands/apps/find-my/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "findmyraycast",
+ "version": "1.0.0",
+ "main": "fmp.js",
+ "scripts": {
+ "start": "node fmp.js"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "description": "",
+ "dependencies": {
+ "dotenv": "^16.5.0",
+ "playwright": "^1.52.0"
+ }
+}
diff --git a/commands/apps/focus/focus-preferences.sh b/commands/apps/focus/focus-preferences.sh
new file mode 100755
index 000000000..df8e08772
--- /dev/null
+++ b/commands/apps/focus/focus-preferences.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Open Focus Preferences
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Open focus preferences.
+
+open "focus://preferences"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-start-break-5.sh b/commands/apps/focus/focus-start-break-5.sh
new file mode 100755
index 000000000..21a4151c6
--- /dev/null
+++ b/commands/apps/focus/focus-start-break-5.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Take 5 Minutes Break
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Take 5 minutes break.
+
+open "focus://break?minutes=5"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-start-custom-break.sh b/commands/apps/focus/focus-start-custom-break.sh
new file mode 100755
index 000000000..17e70dcab
--- /dev/null
+++ b/commands/apps/focus/focus-start-custom-break.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Start Custom Break
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Start a custom break. If you don't enter any values, it uses the last break duration.
+
+# @raycast.argument1 { "type": "text", "placeholder": "Minutes", "optional": true, "percentEncoded": true }
+
+open "focus://break?minutes=${1}"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-start-custom-session.sh b/commands/apps/focus/focus-start-custom-session.sh
new file mode 100755
index 000000000..acbdc6187
--- /dev/null
+++ b/commands/apps/focus/focus-start-custom-session.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Start Custom Focus Session
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Start a custom focus session. If you don't enter any values, it starts an untimed focus session.
+
+# @raycast.argument1 { "type": "text", "placeholder": "Hours", "optional": true, "percentEncoded": true }
+# @raycast.argument2 { "type": "text", "placeholder": "Minutes", "optional": true, "percentEncoded": true }
+
+open "focus://focus?hours=${1}&minutes=${2}"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-start-session-25.sh b/commands/apps/focus/focus-start-session-25.sh
new file mode 100755
index 000000000..fc420e318
--- /dev/null
+++ b/commands/apps/focus/focus-start-session-25.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Start 25 minutes Focus Session
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Start a 25 minutes focus session.
+
+open "focus://focus?minutes=25"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-start-session.sh b/commands/apps/focus/focus-start-session.sh
new file mode 100755
index 000000000..fa15d74eb
--- /dev/null
+++ b/commands/apps/focus/focus-start-session.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Start Focus Session (Focus)
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Start an untimed focus session.
+
+open "focus://focus"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-stop-break.sh b/commands/apps/focus/focus-stop-break.sh
new file mode 100755
index 000000000..98d3d577e
--- /dev/null
+++ b/commands/apps/focus/focus-stop-break.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Stop Break (Unbreak)
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Stop break and continues the current focus session.
+
+open "focus://unbreak"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-stop-session.sh b/commands/apps/focus/focus-stop-session.sh
new file mode 100755
index 000000000..e9ede82e7
--- /dev/null
+++ b/commands/apps/focus/focus-stop-session.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Stop Focus Session (Unfocus)
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Stop the current focus session.
+
+open "focus://unfocus"
\ No newline at end of file
diff --git a/commands/apps/focus/focus-toggle-focus.sh b/commands/apps/focus/focus-toggle-focus.sh
new file mode 100755
index 000000000..c2ea55240
--- /dev/null
+++ b/commands/apps/focus/focus-toggle-focus.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Focus required
+# Install from: https://heyfocus.com
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Toggle Focus Session
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/focus-logo.png
+# @raycast.packageName Focus
+
+# Documentation:
+# @raycast.author Ernest Ojeh
+# @raycast.authorURL https://github.com/namzo
+# @raycast.description Toggle between start session (untimed) and stop session.
+
+open "focus://toggle"
\ No newline at end of file
diff --git a/commands/apps/focus/images/focus-logo.png b/commands/apps/focus/images/focus-logo.png
new file mode 100644
index 000000000..5b9f56471
Binary files /dev/null and b/commands/apps/focus/images/focus-logo.png differ
diff --git a/commands/apps/goodlinks/goodlinks-last-unread-link.sh b/commands/apps/goodlinks/goodlinks-last-unread-link.sh
new file mode 100755
index 000000000..5a836b9a4
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-last-unread-link.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Open Last Unread Link
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Open the last unread link in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+open "goodlinks://x-callback-url/last"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-open-link.sh b/commands/apps/goodlinks/goodlinks-open-link.sh
new file mode 100755
index 000000000..799b2170e
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-open-link.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Open Link
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Open a link in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+# @raycast.argument1 { "type": "text", "placeholder": "URL", "percentEncoded": true}
+
+open "goodlinks://x-callback-url/open?url=${1}"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-random-unread-link.sh b/commands/apps/goodlinks/goodlinks-random-unread-link.sh
new file mode 100755
index 000000000..f7f0b0284
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-random-unread-link.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Open Random Unread Link
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Open a random unread link in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+open "goodlinks://x-callback-url/random"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-read-list.sh b/commands/apps/goodlinks/goodlinks-read-list.sh
new file mode 100755
index 000000000..a848ccf76
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-read-list.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Show Read List
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Show Read list in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+open "goodlinks://x-callback-url/read"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-save-link.sh b/commands/apps/goodlinks/goodlinks-save-link.sh
new file mode 100755
index 000000000..e43e39d82
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-save-link.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Save Link
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Saves a new link to GoodLinks
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+# @raycast.argument1 { "type": "text", "placeholder": "URL", "percentEncoded": true}
+# @raycast.argument2 { "type": "text", "placeholder": "Tags", "optional": true, "percentEncoded": true}
+# @raycast.argument3 { "type": "text", "placeholder": "Title", "optional": true, "percentEncoded": true}
+
+open "goodlinks://x-callback-url/save?url=${1}&tags=${2}&title=${3}&quick=1"
+
+echo "Link saved!"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-starred-list.sh b/commands/apps/goodlinks/goodlinks-starred-list.sh
new file mode 100755
index 000000000..9400ca572
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-starred-list.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Show Starred List
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Show Starred list in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+open "goodlinks://x-callback-url/starred"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-tagged-links.sh b/commands/apps/goodlinks/goodlinks-tagged-links.sh
new file mode 100755
index 000000000..d639db804
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-tagged-links.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Show Tag
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Show links tagged with the specified tag in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+# @raycast.argument1 { "type": "text", "placeholder": "name", "percentEncoded": true}
+
+open "goodlinks://x-callback-url/tag?name=${1}"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-unread-list.sh b/commands/apps/goodlinks/goodlinks-unread-list.sh
new file mode 100755
index 000000000..8ea202150
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-unread-list.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Show Unread List
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Show Unread list in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+open "goodlinks://x-callback-url/unread"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/goodlinks-untagged-list.sh b/commands/apps/goodlinks/goodlinks-untagged-list.sh
new file mode 100755
index 000000000..4cdac21d2
--- /dev/null
+++ b/commands/apps/goodlinks/goodlinks-untagged-list.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Install GoodLinks via Mac App Store: https://apps.apple.com/app/id1474335294
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Show Untagged List
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/goodlinks.png
+# @raycast.packageName GoodLinks
+
+# Documentation:
+# @raycast.description Show Untagged list in the GoodLinks app
+# @raycast.author Filip Chabik
+# @raycast.authorURL https://github.com/hadret
+
+open "goodlinks://x-callback-url/untagged"
\ No newline at end of file
diff --git a/commands/apps/goodlinks/images/goodlinks.png b/commands/apps/goodlinks/images/goodlinks.png
new file mode 100644
index 000000000..1080610c1
Binary files /dev/null and b/commands/apps/goodlinks/images/goodlinks.png differ
diff --git a/commands/apps/hyper/hyper-run-shell-command.applescript b/commands/apps/hyper/hyper-run-shell-command.applescript
new file mode 100755
index 000000000..c592a0762
--- /dev/null
+++ b/commands/apps/hyper/hyper-run-shell-command.applescript
@@ -0,0 +1,51 @@
+#!/usr/bin/osascript
+
+# Note: Hyper required
+# Install via Hyper.is: https://hyper.is/
+
+# Dependency: This script requires `hyperalfred` (https://github.com/gjuchault/hyperalfred)
+# Install via Hyper: `hyper i hyperalfred`
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Run Shell Command
+# @raycast.mode silent
+# @raycast.packageName Hyper
+
+# Optional parameters:
+# @raycast.icon images/hyper.png
+# @raycast.currentDirectoryPath ~
+# @raycast.argument1 { "type": "text", "placeholder": "Command" }
+
+# Documentation:
+# @raycast.description Run a terminal using Hyper
+# @raycast.author Eliot Hertenstein
+# @raycast.authorURL https://github.com/eIiot
+
+on run argv
+ write_to_file( (item 1 of argv) , "./.hyper_plugins/hyperalfred.txt", false)
+ try
+ tell application "Hyper" to activate
+ on error e
+ log "Hyper is required (https://hyper.is)"
+ -- return false
+ end try
+end run
+
+on write_to_file(this_data, target_file, append_data)
+ try
+ tell application "System Events" to exists file target_file
+ if not the result then do shell script "> " & quoted form of target_file
+ set the open_target_file to open for access target_file with write permission
+ if append_data is false then set eof of the open_target_file to 0
+ write this_data to the open_target_file starting at eof
+ close access the open_target_file
+ return true
+ on error e
+ try
+ log "hyperalfred is required (https://github.com/gjuchault/hyperalfred)."
+ close access target_file
+ end try
+ return false
+ end try
+end write_to_file
\ No newline at end of file
diff --git a/commands/apps/hyper/images/hyper.png b/commands/apps/hyper/images/hyper.png
new file mode 100644
index 000000000..13e6fc300
Binary files /dev/null and b/commands/apps/hyper/images/hyper.png differ
diff --git a/commands/apps/iconsur/iconsur.sh b/commands/apps/iconsur/iconsur.sh
index 5c94e62ae..2a1ae92bf 100755
--- a/commands/apps/iconsur/iconsur.sh
+++ b/commands/apps/iconsur/iconsur.sh
@@ -27,9 +27,17 @@ if [ -z "$t" ]; then
exit 1
fi
+# Workaround for the error message
+exec 2>/dev/null
+
# Test file
-if [ ! -d "/Applications/$1.app" ]; then
- echo "Application not found, make sure it's in /Application folder"
+appPath=""
+if [ -d "/Applications/$1.app" ]; then
+ appPath="/Applications/$1.app"
+elif [ -d "$HOME/Applications/$1.app" ]; then
+ appPath="$HOME/Applications/$1.app"
+else
+ echo "Application not found, make sure it's in Applications folder"
exit 2
fi
@@ -42,17 +50,18 @@ if [ $omit -eq 0 ] && [ $3 = "y" -o $3 = "Y" ]; then
loc="-l"
fi
+
if [ $2 ] && [ $omit -eq 0 ]; then
- echo $2|sudo -S iconsur set "/Applications/$1.app" $loc
+ echo $2|sudo -S iconsur set "$appPath" $loc
if [ ${PIPESTATUS[1]} -eq 1 ]; then
echo "Password incorrect"
- exit 0
+ exit 2
fi
else
- iconsur set "/Applications/$1.app" $loc
+ iconsur set "$appPath" $loc 1>/dev/null
if [ ${PIPESTATUS[0]} -eq 1 ]; then
echo "It didn't work, try again with password"
- exit 0
+ exit 2
fi
fi
diff --git a/commands/apps/iterm/iterm-open-profile-in-new-window.applescript b/commands/apps/iterm/iterm-open-profile-in-new-window.applescript
new file mode 100755
index 000000000..6ef8fd3b7
--- /dev/null
+++ b/commands/apps/iterm/iterm-open-profile-in-new-window.applescript
@@ -0,0 +1,34 @@
+#!/usr/bin/osascript
+
+# Dependency: requires iTerm (https://iterm2.com)
+# Install via Homebrew: `brew install --cask iterm2`
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Open profile
+# @raycast.packageName iTerm
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon 🤖
+# @raycast.argument1 { "type": "text", "placeholder": "Placeholder" }
+
+# Documentation:
+# @raycast.author sunrisewestern
+# @raycast.authorURL https://github.com/sunrisewestern
+
+on is_running(appName)
+ tell application "System Events" to (name of processes) contains appName
+end is_running
+
+on run {argv}
+ set iTermRunning to is_running("iTerm2")
+ tell application "iTerm"
+ activate
+ if not (iTermRunning) then
+ delay 0.5
+ close the current window
+ end if
+ create window with profile argv
+ end tell
+end run
diff --git a/commands/apps/lungo/images/lungo.png b/commands/apps/lungo/images/lungo.png
new file mode 100644
index 000000000..30d64f85d
Binary files /dev/null and b/commands/apps/lungo/images/lungo.png differ
diff --git a/commands/apps/lungo/lungo-activate.sh b/commands/apps/lungo/lungo-activate.sh
new file mode 100755
index 000000000..77a5c67d9
--- /dev/null
+++ b/commands/apps/lungo/lungo-activate.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# Note: Lungo v2.0.4 required
+# Install via Mac App Store: https://apps.apple.com/app/id1263070803
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Activate
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/lungo.png
+# @raycast.packageName Lungo
+
+# Documentation:
+# @raycast.author Lungo
+# @raycast.authorURL https://sindresorhus.com/lungo
+# @raycast.description Deactivate Lungo.
+# @raycast.argument1 { "type": "text", "placeholder": "hours", "optional": true, "percentEncoded": true }
+# @raycast.argument2 { "type": "text", "placeholder": "minutes", "optional": true, "percentEncoded": true }
+
+open --background "lungo:activate?hours=$1&minutes=$2"
diff --git a/commands/apps/lungo/lungo-deactivate.sh b/commands/apps/lungo/lungo-deactivate.sh
new file mode 100755
index 000000000..3a3a8c5c6
--- /dev/null
+++ b/commands/apps/lungo/lungo-deactivate.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Lungo v2.0.4 required
+# Install via Mac App Store: https://apps.apple.com/app/id1263070803
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Deactivate
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/lungo.png
+# @raycast.packageName Lungo
+
+# Documentation:
+# @raycast.author Lungo
+# @raycast.authorURL https://sindresorhus.com/lungo
+# @raycast.description Deactivate Lungo.
+
+open --background lungo:deactivate
diff --git a/commands/apps/lungo/lungo-toggle.sh b/commands/apps/lungo/lungo-toggle.sh
new file mode 100755
index 000000000..e149f04e7
--- /dev/null
+++ b/commands/apps/lungo/lungo-toggle.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# Note: Lungo v2.0.4 required
+# Install via Mac App Store: https://apps.apple.com/app/id1263070803
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Toggle
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/lungo.png
+# @raycast.packageName Lungo
+
+# Documentation:
+# @raycast.author Lungo
+# @raycast.authorURL https://sindresorhus.com/lungo
+# @raycast.description Toggle Lungo.
+# @raycast.argument1 { "type": "text", "placeholder": "hours", "optional": true, "percentEncoded": true }
+# @raycast.argument2 { "type": "text", "placeholder": "minutes", "optional": true, "percentEncoded": true }
+
+open --background "lungo:toggle?hours=$1&minutes=$2"
diff --git a/commands/apps/mail/copy-captcha-from-mail.py b/commands/apps/mail/copy-captcha-from-mail.py
new file mode 100755
index 000000000..de5cae47b
--- /dev/null
+++ b/commands/apps/mail/copy-captcha-from-mail.py
@@ -0,0 +1,97 @@
+#!/usr/bin/env python3
+
+# Copy the verification code from Mail.
+#
+# Dependency: This script requires the `emlx` package.
+# Install it via `pip install emlx`.
+#
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title CaptchaFromMail
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/mail.png
+# @raycast.packageName Mail
+
+# Documentation:
+# @raycast.description Copy the captcha from the emlx file.
+# @raycast.author RealTong
+# @raycast.authorURL https://raycast.com/RealTong
+
+import os
+import re
+import pyperclip
+import emlx
+
+
+def extract_captcha_from_emlx(emlx_path):
+ if emlx_file is None or os.path.exists(emlx_file) is False:
+ print("Mail not found")
+ return
+ email = emlx.read(emlx_path)
+ headers = email.headers
+ content = email.html
+ subject = headers["Subject"]
+ captcha_match_keyword = [
+ "验证码",
+ "动态密码",
+ "代码",
+ "确认",
+ "码",
+ "verification",
+ "code",
+ "confirm",
+ ]
+ content_pattern = r"\b[0-9]{6}\b"
+ subject_pattern = r"\b[a-zA-Z0-9]{6}\b"
+ # 判断内容中是否包含验证码关键字, 只有包含关键字的邮件才会查找验证码
+ for keyword in captcha_match_keyword:
+ if keyword in subject:
+ if re.search(subject_pattern, subject):
+ captcha = re.search(subject_pattern, subject).group()
+ pyperclip.copy(captcha)
+ print("Verification code successfully copied to clipboard:", captcha)
+ return
+ if re.search(content_pattern, content):
+ captcha = re.search(content_pattern, content).group()
+ pyperclip.copy(captcha)
+ print("Verification code successfully copied to clipboard:", captcha)
+ return
+ else:
+ print("Verification code not found")
+ else:
+ print("Not a verification code email")
+
+
+def get_latest_emlx_file(folder):
+ latest_emlx_file = None
+ latest_mod_time = 0
+ for root, dirs, files in os.walk(folder):
+ for file in files:
+ if file.endswith(".emlx"):
+ file_path = os.path.join(root, file)
+ mod_time = os.path.getmtime(file_path)
+ if mod_time > latest_mod_time:
+ latest_mod_time = mod_time
+ latest_emlx_file = file_path
+
+ return latest_emlx_file
+
+
+if __name__ == "__main__":
+ try:
+ import emlx
+
+ os.listdir(f"/")
+ except ImportError:
+ print("emlx not installed, please run 'pip install emlx' to install it")
+ exit(1)
+ except OSError:
+ print(
+ "Currently there is no Full Disk Access permission, please grant Full Disk Access permission to the terminal in System Preferences > Security & Privacy > Privacy > Full Disk Access."
+ )
+ exit(1)
+ mail_path = f"{os.path.expanduser('~')}/Library/Mail/V10/"
+ emlx_file = get_latest_emlx_file(mail_path)
+ extract_captcha_from_emlx(emlx_file)
diff --git a/commands/apps/mail/images/mail.png b/commands/apps/mail/images/mail.png
new file mode 100644
index 000000000..0ae662ac3
Binary files /dev/null and b/commands/apps/mail/images/mail.png differ
diff --git a/commands/apps/medo/add-task.sh b/commands/apps/medo/add-task.sh
new file mode 100755
index 000000000..567b829ce
--- /dev/null
+++ b/commands/apps/medo/add-task.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# Note: Medo v1.0 required
+# Install via Github Repo: https://github.com/Aayush9029/Medo
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Add Task
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/medo.png
+# @raycast.argument1 { "type": "text", "placeholder": "Title" }
+# @raycast.argument2 { "type": "text", "placeholder": "Priority", "default": "low","optional": true}
+# @raycast.packageName Medo
+
+# Documentation:
+# @raycast.description Add a new task
+# @raycast.author Aayush
+# @raycast.authorURL https://github.com/Aayush9029
+
+open "medo://add-task?title=$1&p=$2"
diff --git a/commands/apps/medo/images/medo.png b/commands/apps/medo/images/medo.png
new file mode 100644
index 000000000..e9311e695
Binary files /dev/null and b/commands/apps/medo/images/medo.png differ
diff --git a/commands/apps/medo/medo-float-large.sh b/commands/apps/medo/medo-float-large.sh
new file mode 100755
index 000000000..44579222d
--- /dev/null
+++ b/commands/apps/medo/medo-float-large.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Medo v1.0 required
+# Install via Github Repo: https://github.com/Aayush9029/Medo
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Medo Float Large
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/medo.png
+# @raycast.packageName Medo
+
+# Documentation:
+# @raycast.description Add a new task with priority
+# @raycast.author Aayush
+# @raycast.authorURL https://github.com/Aayush9029
+
+open "medo://show-large"
diff --git a/commands/apps/medo/medo-float-small.sh b/commands/apps/medo/medo-float-small.sh
new file mode 100755
index 000000000..c483ae15e
--- /dev/null
+++ b/commands/apps/medo/medo-float-small.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Medo v1.0 required
+# Install via Github Repo: https://github.com/Aayush9029/Medo
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Medo Float Small
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/medo.png
+# @raycast.packageName Medo
+
+# Documentation:
+# @raycast.description Add a new task with priority
+# @raycast.author Aayush
+# @raycast.authorURL https://github.com/Aayush9029
+
+open "medo://show-small"
diff --git a/commands/apps/medo/medo-float.sh b/commands/apps/medo/medo-float.sh
new file mode 100755
index 000000000..3d0046790
--- /dev/null
+++ b/commands/apps/medo/medo-float.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Note: Medo v1.0 required
+# Install via Github Repo: https://github.com/Aayush9029/Medo
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Medo Float
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon ./images/medo.png
+# @raycast.packageName Medo
+
+# Documentation:
+# @raycast.description Add a new task with priority
+# @raycast.author Aayush
+# @raycast.authorURL https://github.com/Aayush9029
+
+open "medo://show-medium"
diff --git a/commands/apps/meetingbar/images/meetingbar.png b/commands/apps/meetingbar/images/meetingbar.png
index 6603a7feb..5104e656d 100644
Binary files a/commands/apps/meetingbar/images/meetingbar.png and b/commands/apps/meetingbar/images/meetingbar.png differ
diff --git a/commands/apps/menubarx/close-last-menubarx-tab.sh b/commands/apps/menubarx/close-last-menubarx-tab.sh
new file mode 100755
index 000000000..156b42524
--- /dev/null
+++ b/commands/apps/menubarx/close-last-menubarx-tab.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/osascript
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Close Last Tab
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/menubarx_logo.png
+# @raycast.packageName MenubarX
+
+# Documentation:
+# @raycast.description Close last viewed tab in MenubarX
+# @raycast.author Clu Soh
+# @raycast.authorURL https://twitter.com/designedbyclu
+
+tell application "MenubarX" to activate
+delay 0.1
+tell application "System Events" to tell process "MenubarX"
+ key code 13 using {shift down, command down}
+end tell
+do shell script "echo Closed tab"
\ No newline at end of file
diff --git a/commands/apps/menubarx/images/menubarx_logo.png b/commands/apps/menubarx/images/menubarx_logo.png
new file mode 100644
index 000000000..51cdfe016
Binary files /dev/null and b/commands/apps/menubarx/images/menubarx_logo.png differ
diff --git a/commands/apps/menubarx/open-in-menubarx.sh b/commands/apps/menubarx/open-in-menubarx.sh
new file mode 100755
index 000000000..ee0463b5f
--- /dev/null
+++ b/commands/apps/menubarx/open-in-menubarx.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Open in MenubarX
+# @raycast.mode silent
+# Optional parameters:
+# @raycast.icon images/menubarx_logo.png
+# @raycast.packageName MenubarX
+
+# Documentation:
+# @raycast.description Open Pasteboard link in MenubarX
+# @raycast.author Clu Soh
+# @raycast.authorURL https://twitter.com/designedbyclu
+
+regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
+pasteboard=$(pbpaste)
+
+if [[ $pasteboard =~ $regex ]]
+then
+ open "menubarx://open/?xurl=$pasteboard"
+ echo "Opened in MenubarX"
+else
+ echo "Seem like is not a URL you copied"
+fi
+
+
+
+
diff --git a/commands/apps/menubarx/open-tab-in-menubar.applescript b/commands/apps/menubarx/open-tab-in-menubar.applescript
new file mode 100755
index 000000000..63dc77949
--- /dev/null
+++ b/commands/apps/menubarx/open-tab-in-menubar.applescript
@@ -0,0 +1,77 @@
+#!/usr/bin/osascript
+
+# Required parameters:
+# @raycast.schemaVersion 1
+# @raycast.title Open Tabs
+# @raycast.mode silent
+
+# Optional parameters:
+# @raycast.icon images/menubarx_logo.png
+# @raycast.packageName MenubarX
+# @raycast.argument1 { "type": "text", "placeholder": "Tabs 1~9" }
+
+# Documentation:
+# @raycast.description Open X Tab in your menubar
+# @raycast.author Clu Soh
+# @raycast.authorURL https://twitter.com/designedbyclu
+
+
+on run argv
+ set tabNum to item 1 of argv
+
+ if tabNum is equal to "1" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "1" using command down
+ end tell
+ else if tabNum is equal to "2" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "2" using command down
+ end tell
+ else if tabNum is equal to "3" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "3" using command down
+ end tell
+ else if tabNum is equal to "4" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "4" using command down
+ end tell
+ else if tabNum is equal to "5" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "5" using command down
+ end tell
+ else if tabNum is equal to "6" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "6" using command down
+ end tell
+ else if tabNum is equal to "7" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "7" using command down
+ end tell
+ else if tabNum is equal to "8" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "8" using command down
+ end tell
+ else if tabNum is equal to "9" then
+ tell application "MenubarX" to activate
+ delay 0.1
+ tell application "System Events" to tell process "MenubarX"
+ keystroke "9" using command down
+ end tell
+ end if
+end run
diff --git a/commands/apps/mullvad/connect.sh b/commands/apps/mullvad/connect.sh
index 94390e13e..1ec0e6c65 100755
--- a/commands/apps/mullvad/connect.sh
+++ b/commands/apps/mullvad/connect.sh
@@ -30,7 +30,5 @@ if [ $success -ne 0 ]; then
exit 1
fi
-status=$(mullvad status --location)
-relay=$(echo "$status" | sed -n '2 s/Relay: //p')
-location=$(echo "$status" | sed -n '5 s/Location: //p')
-echo "Successfully connected to $relay ($location)"
+status=$(mullvad status)
+echo "$status"
diff --git a/commands/apps/mullvad/images/connect.png b/commands/apps/mullvad/images/connect.png
index d1f1c0115..ffe9a3c69 100644
Binary files a/commands/apps/mullvad/images/connect.png and b/commands/apps/mullvad/images/connect.png differ
diff --git a/commands/apps/mullvad/images/disconnect.png b/commands/apps/mullvad/images/disconnect.png
index 3f40430e6..e0e0f86fc 100644
Binary files a/commands/apps/mullvad/images/disconnect.png and b/commands/apps/mullvad/images/disconnect.png differ
diff --git a/commands/apps/mullvad/images/location.png b/commands/apps/mullvad/images/location.png
index 90a243f54..37606d553 100644
Binary files a/commands/apps/mullvad/images/location.png and b/commands/apps/mullvad/images/location.png differ
diff --git a/commands/apps/mullvad/images/reconnect.png b/commands/apps/mullvad/images/reconnect.png
index c2608dc1d..b1739c613 100644
Binary files a/commands/apps/mullvad/images/reconnect.png and b/commands/apps/mullvad/images/reconnect.png differ
diff --git a/commands/apps/mullvad/images/search.png b/commands/apps/mullvad/images/search.png
index c71ac4871..2f649bda3 100644
Binary files a/commands/apps/mullvad/images/search.png and b/commands/apps/mullvad/images/search.png differ
diff --git a/commands/apps/mullvad/images/status.png b/commands/apps/mullvad/images/status.png
index be54c2e11..cc2dc1fe5 100644
Binary files a/commands/apps/mullvad/images/status.png and b/commands/apps/mullvad/images/status.png differ
diff --git a/commands/apps/mullvad/location.sh b/commands/apps/mullvad/location.sh
index fb8c28098..c8c15836e 100755
--- a/commands/apps/mullvad/location.sh
+++ b/commands/apps/mullvad/location.sh
@@ -41,7 +41,5 @@ if [ $success -ne 0 ]; then
exit 1
fi
-status=$(mullvad status --location)
-relay=$(echo "$status" | sed -n '2 s/Relay: //p')
-location=$(echo "$status" | sed -n '5 s/Location: //p')
-echo "Successfully connected to $relay ($location)"
+status=$(mullvad status)
+echo "$status"
diff --git a/commands/apps/mullvad/reconnect.sh b/commands/apps/mullvad/reconnect.sh
index e7bac7ec8..22ab16e68 100755
--- a/commands/apps/mullvad/reconnect.sh
+++ b/commands/apps/mullvad/reconnect.sh
@@ -36,6 +36,4 @@ if [[ $status == *"Tunnel status: Disconnected"* ]]; then
exit 0
fi
-relay=$(echo "$status" | sed -n '2 s/Relay: //p')
-location=$(echo "$status" | sed -n '5 s/Location: //p')
-echo "Successfully reconnected to $relay ($location)"
+echo "$status"
diff --git a/commands/apps/mullvad/status.sh b/commands/apps/mullvad/status.sh
index f7846adf3..69b860c46 100755
--- a/commands/apps/mullvad/status.sh
+++ b/commands/apps/mullvad/status.sh
@@ -25,7 +25,7 @@ if ! command -v mullvad &> /dev/null; then
exit 1
fi
-status=$(mullvad status --location)
+status=$(mullvad status)
success=$?
if [ $success -ne 0 ]; then
@@ -33,10 +33,8 @@ if [ $success -ne 0 ]; then
exit 1
fi
-if [[ $status == *"Tunnel status: Disconnected"* ]]; then
+if [[ $status == *"Disconnected"* ]]; then
echo "❌ Disconnected and unsecured"
else
- relay=$(echo "$status" | sed -n '2 s/Relay: //p')
- location=$(echo "$status" | sed -n '5 s/Location: //p')
- echo "✅ Connected to $relay ($location)"
+ echo "✅ $status"
fi
diff --git a/commands/apps/noteplan3/images/noteplan3.png b/commands/apps/noteplan3/images/noteplan3.png
index 6a7120c59..eb3593b54 100644
Binary files a/commands/apps/noteplan3/images/noteplan3.png and b/commands/apps/noteplan3/images/noteplan3.png differ
diff --git a/commands/apps/noteplan3/images/screenshot.png b/commands/apps/noteplan3/images/screenshot.png
index 5e7659a5a..0043635ef 100644
Binary files a/commands/apps/noteplan3/images/screenshot.png and b/commands/apps/noteplan3/images/screenshot.png differ
diff --git a/commands/apps/notes/create-note-from-clipboard.applescript b/commands/apps/notes/create-note-from-clipboard.applescript
index e54c6bf7b..f131fd31a 100755
--- a/commands/apps/notes/create-note-from-clipboard.applescript
+++ b/commands/apps/notes/create-note-from-clipboard.applescript
@@ -21,6 +21,6 @@ on run argv