Jingle is a desktop command launcher and agent workbench.
Official site: jingle.cool
It takes the keyboard-first speed of Raycast as the baseline, then adds the parts an agent needs when work moves beyond a short chat: approvals, tool execution, checkpoints, thread history, local memory, and extension tools that can be inspected by the user.
Caution
Jingle can give AI agents access to files, local tools, and shell commands. Review tool calls before approving them, and only run Jingle in workspaces you trust.
git clone https://github.com/JunJD/Jingle.git
cd Jingle
make setupRequires Node.js 20.19+ or 22.12+, and pnpm 10+.
make setup installs dependencies, generates the Prisma client, and applies the
local Jingle database migrations.
For optional local environment variables, copy .env.example to .env and
fill only the values you need. Do not commit .env or real secrets.
make devUse the Makefile as the public development entrypoint:
make helplists the stable public commandsmake checkruns lint, typecheck, and architecture guardrailsmake testruns node tests and the BDD smoke suitemake buildcreates a production-like local build
BDD tests build the app, launch the packaged Electron entrypoint, create an
isolated JINGLE_HOME directory for each scenario, and run Prisma migrations
before the app starts.
make usemake use builds Jingle and opens a local preview app. After the first build,
make start launches the latest local preview again.
Jingle keeps local state in JINGLE_HOME when it is set, otherwise under
~/.jingle.
Jingle has three jobs:
- launch apps, commands, extensions, and AI workflows quickly
- run agent work as durable threads with checkpoints and visible approvals
- let extensions expose both UI commands and agent-callable tools
Raycast is the main UX reference for launcher speed, extension ergonomics, AI commands, agents, skills, and MCP-style integrations. Jingle aims to match that everyday desktop feel while putting more weight on agent execution: what the agent saw, what it changed, which tools it used, and where the user stayed in control.
Useful references:
- Raycast AI
- Raycast AI Commands
- Raycast AI Extensions
- Raycast Agents
- Raycast Skills
- Raycast MCP
- Raycast extension docs
Jingle is an open-source project in active development. APIs, extension contracts, and local data schemas may change before a stable release.
Jingle extensions use the @jingle/* workspace packages:
@jingle/extension-api@jingle/extension-utils@jingle/extension-cli
make extensions
make extension-dev EXTENSION=installable-extensions/coffeeExtension package contracts are documented in docs/extension-package-contract.md.
See roadmap.md for the product and project roadmap. A Simplified Chinese version is available at roadmap.zh-CN.md.
Jingle uses stable and nightly release channels. See docs/release-channels.md for tag formats and release rules.
Contributions are welcome. Start with CONTRIBUTING.md, keep changes scoped to a clear owner, and describe runtime or renderer boundary changes in the PR.
Report bugs via GitHub Issues. For project help, see SUPPORT.md. For security reports, see SECURITY.md. For community expectations, see CODE_OF_CONDUCT.md.
Apache License 2.0. See LICENSE.