Skip to content

JunJD/Jingle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

248 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Jingle

English | 简体中文

License: Apache-2.0

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.

Quick Start

1. Setup

git clone https://github.com/JunJD/Jingle.git
cd Jingle
make setup

Requires 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.

2. Develop

make dev

Use the Makefile as the public development entrypoint:

  • make help lists the stable public commands
  • make check runs lint, typecheck, and architecture guardrails
  • make test runs node tests and the BDD smoke suite
  • make build creates 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.

3. Use

make use

make 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.

What Jingle Is

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:

Jingle is an open-source project in active development. APIs, extension contracts, and local data schemas may change before a stable release.

Extension Development

Jingle extensions use the @jingle/* workspace packages:

  • @jingle/extension-api
  • @jingle/extension-utils
  • @jingle/extension-cli
make extensions
make extension-dev EXTENSION=installable-extensions/coffee

Extension package contracts are documented in docs/extension-package-contract.md.

Roadmap

See roadmap.md for the product and project roadmap. A Simplified Chinese version is available at roadmap.zh-CN.md.

Releases

Jingle uses stable and nightly release channels. See docs/release-channels.md for tag formats and release rules.

Contributing

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.

License

Apache License 2.0. See LICENSE.

About

Jingle is a desktop command launcher and agent workbench for auditable AI agents.Jingle 是一款桌面命令启动器和可审计 AI Agent的工作台

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages