Skip to content

Add dated-folder extension - #30600

Open
fanhefeng wants to merge 3 commits into
raycast:mainfrom
fanhefeng:ext/dated-folder
Open

Add dated-folder extension#30600
fanhefeng wants to merge 3 commits into
raycast:mainfrom
fanhefeng:ext/dated-folder

Conversation

@fanhefeng

@fanhefeng fanhefeng commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Description

Dated Folder adds one no-view command, Create Dated Folder: it creates a folder named after today's date (e.g. 2026-08-28) inside a parent folder of your choice and opens it straight in a terminal. It is meant for the "I need somewhere to put today's scratch work" moment — one keystroke instead of mkdir + cd + opening a terminal window.

Preferences:

  • Parent Folder (directory) — defaults to ~/Desktop/temp when empty.
  • Terminal (appPicker) — any installed app. When empty, the extension follows the terminal registered in LaunchServices as the shell-role handler for public.unix-executable, which is exactly what Ghostty / iTerm2 / Warp write when you accept "make this your default terminal". Falls back to Terminal.app.
  • Folder Name Format (textfield) — yyyy, MM, dd, HH, mm, ss tokens; / nests folders (yyyy/MM/dd). Names containing .. segments are rejected so a format string can never escape the parent folder.
  • Reveal (checkbox) — also reveal the folder in Finder.

No network access, no binaries, no third-party dependencies beyond @raycast/api / @raycast/utils.

platforms is ["macOS"] only. A Windows launcher is already in src/lib.ts (Windows Terminal via wt.exe -d, other shells via start /d, Desktop resolved from the known-folder registry entry so OneDrive redirection is respected), but it has not been exercised on a real Windows machine yet, so the extension does not claim support it cannot back. Windows will be enabled in a follow-up PR after manual QA.

Screencast

The command has no UI of its own (no-view): it creates the folder, opens the terminal, and confirms with a HUD such as 📂 Ghostty → ~/Desktop/temp/2026-08-28.

Checklist

@raycastbot raycastbot added the new extension Label for PRs with new extensions label Aug 28, 2026
@raycastbot

Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@greptile-apps

greptile-apps Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds the macOS-only Dated Folder extension, which creates a date-formatted directory and opens it in a selected or system-default terminal.

  • Adds a no-view command with configurable parent folder, date format, terminal, and Finder reveal behavior.
  • Adds path-containment validation and LaunchServices-based default-terminal selection.
  • Includes the extension manifest, lockfile, documentation, changelog, icon, and standard tooling configuration.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; the generated preference type issue is fixed, and the updated terminal selection follows the newest numeric LaunchServices modification date as described in the resolved thread.

Important Files Changed

Filename Overview
extensions/dated-folder/src/create-dated-folder.ts Implements the no-view workflow and now correctly consumes the generated command preference type, resolving the prior duplication finding.
extensions/dated-folder/src/lib.ts Implements date formatting, contained path resolution, platform helpers, and newest-record LaunchServices terminal selection; no eligible residual defect was established.
extensions/dated-folder/package.json Declares the command, preferences, macOS support, metadata, and dependencies consistently with the source implementation.
extensions/dated-folder/package-lock.json Pins the extension’s canonical npm dependency graph with integrity metadata.
extensions/dated-folder/README.md Documents the command behavior, preferences, formatting syntax, and current platform support.

Reviews (5): Last reviewed commit: "Keep single-quoted text literal in the f..." | Re-trigger Greptile

Comment thread extensions/dated-folder/src/create-dated-folder.ts Outdated
Comment thread extensions/dated-folder/src/lib.ts Outdated
… handler

- Use the generated Preferences.CreateDatedFolder type instead of a
  hand-written interface that duplicated the manifest.
- When the LaunchServices plist carries several shell-role records for
  public.unix-executable, follow the one with the newest
  LSHandlerModificationDate rather than the first record in the file.
Comment thread extensions/dated-folder/src/lib.ts
- Text wrapped in single quotes is no longer scanned for date tokens, so
  a format like 'summer'-yyyy yields summer-2026 instead of having the mm
  inside "summer" expanded to the current minute. '' produces a single
  quote, following the usual LDML convention.
- Document the escape in the preference description and the README.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LV7vNG8uKtCWkeYDyx5CgM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants