A TypeScript monorepo for personal automation tools, VS Code extensions, and Raycast extensions.
Note: Looking for the legacy Ruby scripts? See the v1.0.0 tag.
| Package | Description |
|---|---|
@jonmagic/scripts-core |
Shared utilities and libraries |
@jonmagic/scripts-cli |
CLI tools (archive-meeting, etc.) |
jonmagic-scripts |
VS Code extension |
jonmagic-scripts-raycast |
Raycast extension |
# Clone and setup
git clone https://github.com/jonmagic/scripts.git
cd scripts
bin/setupThe setup script will:
- Install Bun (if not already installed)
- Install dependencies
- Build all packages
# Install dependencies
bun install
# Build all packages
bun run build
# Run tests
bun test
# Lint
bun run lint
# Type check
bun run typecheckbin/install-vscode-extensionbin/install-raycast-extensionAfter running bin/setup, add the CLI to your PATH:
export PATH="$HOME/code/jonmagic/scripts/bin:$PATH"- Bun - JavaScript runtime (installed by setup)
- gh - GitHub CLI
- copilot - GitHub Copilot CLI
- llm - Prompt runner for single-shot model calls
- fzf - Fuzzy finder (for interactive selection)
| Command | Description | Requirements |
|---|---|---|
archive-meeting |
Archive a meeting transcript with AI-generated summaries | bun, llm |
capture-weekly-note |
Append a rough commitment capture with optional source under ## Captured in the current weekly note |
bun |
list-recent-meetings |
List recent Zoom and Teams meeting inputs as JSON | bun |
fetch-github-conversation |
Fetch GitHub issue, PR, or discussion as JSON | gh |
prepare-pull-request |
Generate PR title/body with Copilot CLI and create PR | git, gh, copilot |
weekly-focus |
Print a low-noise Now/Next/Waiting/Captured view from the current weekly note | bun |
weekly-focus-card |
Print a sparse focus card capped at five current weekly-note TODOs | bun |
weekly-focus-app |
Build and open the native full-screen Weekly Focus app | swift |
weekly-focus-app opens a native macOS app that reads the current weekly note,
fills the current monitor by default, and shows at most five unchecked ## TODO
items. Each whole TODO row has one action: a bare Copilot session ID is copied
to the clipboard; otherwise the first URL or Brain wikilink opens; otherwise a
new cmux workspace opens in ~/Brain with c started on that TODO. Click an
item, press 1-5, or press ⌘1-⌘5 to run that action. Hover a row to show
its completion checkbox, or command-click the row, to check it off in the
weekly note. Completed TODOs are kept above unchecked TODOs, with the newly
completed item last in the completed group. Press ⌘O to open the source
weekly note in VS Code Insiders. The app also watches the
weekly note and refreshes automatically when an external markdown edit checks
off or adds TODOs. Up to five items after the top five fade below the main
focus area.
Type in the empty field and press Return to add a new TODO. Press R to
refresh and Q, Esc, or ⌘Q to quit.
Weekly Focus reads the current week's note when it exists. If the current week file has not been created yet, it falls back to the latest existing weekly note instead of failing on Sunday morning.
bin/weekly-focus-appThe build script installs the Dock-safe app bundle at
~/Applications/Weekly Focus.app with the bundled app icon from
packages/focus-app/Resources/WeeklyFocus.icns.
The native app has a self-test that creates a temporary Brain, opens a TODO,
checks ⌘1 while the text field is focused, verifies automatic refresh after
an external markdown edit, checks input-field copy/paste and ⌘Q, adds a TODO,
marks a TODO done, and asks cmux to open a harmless workspace command:
bin/test-weekly-focus-appThe Raycast extension includes quick Brain actions for the same weekly-note workflow:
| Command | Description |
|---|---|
Create Daily Project Note |
Create a numbered Daily Project note |
Capture Weekly Note |
Capture a rough commitment with optional source under ## Captured |
Weekly Focus |
Open the native full-screen Weekly Focus app |
ISC