magic-slash
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- process.env — Environment variable access in desktop/scripts/notarize.js
- os.homedir — User home directory access in desktop/src/main/config/command-history.ts
Permissions Pass
- Permissions — No dangerous permissions requested
This tool is a desktop application and CLI agent that provides seven slash commands for Claude Code. It is designed to automate a developer's entire workflow, starting from fetching a Jira ticket or GitHub issue and ending with a merged pull request.
Security Assessment
The overall risk is rated as Medium. The agent interacts heavily with sensitive data by design. It requires access to your GitHub token and Atlassian OAuth to create PRs and update Jira tickets. Automated rule-based scans flagged a failure for accessing the user's home directory (`os.homedir`) to manage command history, which is a common but notable operation for desktop apps. Another warning was issued for accessing environment variables in the notarization script.
However, the most significant security concern is the installation method. It instructs users to pipe a remote script directly into bash (`curl | bash`), which can hide malicious or dynamic code and bypass local security reviews. Users should manually inspect the `install.sh` script before execution. No hardcoded secrets were detected, and the tool does not request dangerous system permissions.
Quality Assessment
The project is actively maintained, with its most recent push occurring today. It uses a permissive MIT license and includes automated CI/CD pipelines for releases. However, community trust and visibility are exceptionally low right now, with only 5 GitHub stars. It is a very young project, meaning bugs or edge cases in the automated workflow are likely.
Verdict
Use with caution. While the underlying code appears standard for a developer automation tool, you should always inspect the `install.sh` script before running it, and be mindful of granting repository and Jira access to a very new, low-visibility project.
Desktop app with 7 Claude Code skills to automate your entire dev cycle — from Jira ticket to merged PR.
Desktop app with 7 Claude Code skills to automate your entire dev cycle — from Jira ticket to merged PR.
Skills
| Skill | Description |
|---|---|
/magic:start |
Start a task from a Jira ticket or GitHub issue |
/magic:continue |
Resume work on an existing ticket |
/magic:commit |
Create an atomic commit with conventional message |
/magic:pr |
Push, create PR and update Jira |
/magic:review |
Review a Pull Request (self or external) |
/magic:resolve |
Address review comments and force-push fixes |
/magic:done |
Finalize after PR merge (transition Jira to Done) |
Type
/magic:to quickly find all commands.
You can also invoke skills using natural language:
- "démarre PROJ-123" or "work on PROJ-123" →
/magic:start - "je reprends PROJ-123" or "continue PROJ-123" →
/magic:continue - "je suis prêt à committer" or "ready to commit" →
/magic:commit - "on peut créer la PR" or "create the PR" →
/magic:pr - "regarde la PR" or "review my PR" →
/magic:review - "corriger les commentaires" or "fix review comments" →
/magic:resolve - "la PR est mergée" or "the PR is merged" →
/magic:done
Installation
curl -fsSL https://magic-slash.io/install.sh | bash
Prerequisites
- Claude Code
- Node.js 20+ (see
.nvmrc) - Git
- jq
What the script does
- Configures Atlassian MCP (prompts for OAuth authentication)
- Configures GitHub MCP (prompts for your token)
- Configures your repositories (1 to N repos with optional keywords for smart detection)
- Installs the 7 skills
Usage
/magic:start - Start a task
/magic:start PROJ-1234 # Jira ticket
/magic:start 42 # GitHub issue
/magic:start #42 # GitHub issue (with #)
- Detects the ticket type (Jira or GitHub) based on format
- Fetches ticket/issue details (title, description, labels)
- Analyzes the scope using keyword-based scoring to select relevant repositories
- Creates Git worktrees automatically for selected repos
- Generates an agent context to start coding
Jira example (single repo detected):
> /magic:start PROJ-42
Source: Jira
Ticket: PROJ-42 - Add API endpoint for users
Type: Feature
Scope: api (score: 15) - matched keywords: "backend", "api"
Worktree created:
✓ /projects/my-api-PROJ-42
Context:
You need to implement the new API endpoint for users...
Jira example (multiple repos detected):
> /magic:start PROJ-42
Source: Jira
Ticket: PROJ-42 - Add pagination on /users
Type: Feature
This ticket seems to concern multiple repositories:
1. api (score: 15) - matched keywords: "backend", "api"
2. web (score: 10) - matched keywords: "frontend"
Which one do you want to use? (1, 2, or 'all')
> all
Worktrees created:
✓ /projects/my-api-PROJ-42
✓ /projects/my-web-PROJ-42
/magic:commit - Create a commit
/magic:commit
- Stage all changes
- Analyze the diff
- Evaluate if changes should be split into multiple commits
- Generate a conventional message (respects per-repo settings)
- Auto-fix pre-commit hook errors (lint, format, etc.)
- Create the commit
Format examples:
| Format | Example |
|---|---|
| conventional | feat: add JWT token refresh mechanism |
| angular | feat(auth): add JWT token refresh mechanism |
| gitmoji | :sparkles: add JWT token refresh mechanism |
With ticket ID (if enabled):
[PROJ-123] feat(auth): add JWT token refresh mechanism
Multi-repo support: If you're in a worktree associated with a ticket that spans multiple repos,/magic:commit will detect all related worktrees and commit changes in each one.
/magic:pr - Push and create a Pull Request
/magic:pr
- Push the branch to origin
- Create a Pull Request (via GitHub MCP)
- Uses your project's PR template if one exists
- Auto-links Jira/GitHub tickets in description (by default)
- Extract ticket ID from branch name
- Update Jira ticket → "To be reviewed"
- Add comment with PR link on Jira (by default)
Multi-repo support: If you're in a worktree associated with a ticket that spans multiple repos,/magic:pr will push and create PRs for each one.
Example:
📌 Branch : feature/PROJ-42
🔗 PR : https://github.com/org/repo/pull/42
🎫 Ticket : PROJ-42 → To be reviewed
Next steps:
1. Request a review from your colleagues
2. Wait for approval and CI checks
3. Merge the PR once approved
/magic:review - Review a Pull Request
/magic:review # Review the PR for the current branch
/magic:review PROJ-42 # Review a specific ticket's PR
- Detect the PR associated with the current branch (or a given ticket)
- Determine if this is a self-review or an external review
- Fetch the PR diff and changed files
- Analyze each file for issues, suggestions, and good practices
- Submit the review on GitHub with categorized inline comments (Blocking / Suggestion / Praise)
Note: This skill is read-only — it does not modify any files.
/magic:resolve - Address review feedback
/magic:resolve # Fix comments on the current branch's PR
/magic:resolve PROJ-42 # Fix comments for a specific ticket's PR
- Retrieve unresolved review comments from the PR
- Analyze each comment and determine required changes
- Apply fixes to the codebase
- Amend or create fixup commits as appropriate
- Force-push with
--force-with-lease
/magic:done - Finalize after merge
/magic:done
- Verify the PR has been merged
- Transition the Jira ticket to "Done"
- Add a final comment on Jira with a summary
- Update task status in the Desktop app
Example:
✅ Task finalized!
🎫 Ticket : PROJ-42 → Done
🔗 PR : https://github.com/org/repo/pull/42 (merged)
Desktop App
Magic Slash ships a native desktop application built with Electron, featuring integrated Claude Code terminals, project management sidebar, and agent tracking. The app checks for updates automatically on launch.
# Install desktop dependencies
npm run desktop:install
# Run in development mode
npm run desktop
# Build for production
npm run desktop:build
# Package for macOS
npm run desktop:package
Configuration
Files
| File | Description |
|---|---|
~/.claude/settings.json |
Atlassian & GitHub MCP configuration |
~/.config/magic-slash/config.json |
Repository paths, keywords, settings |
~/.local/bin/magic-slash |
CLI command to launch the desktop app |
~/.claude/skills/magic-slash/ |
Installed skills (all 7 skills) |
Configuration schema
{
"version": "0.32.3",
"repositories": {
"api": {
"path": "/Users/dev/projects/my-api",
"keywords": ["backend", "api", "server"],
"color": "#3B82F6",
"languages": {
"commit": "en",
"pullRequest": "fr",
"jiraComment": "en",
"discussion": "en"
},
"commit": {
"style": "single-line",
"format": "angular",
"coAuthor": true,
"includeTicketId": true
},
"resolve": {
"commitMode": "new",
"useCommitConfig": true,
"replyToComments": true,
"replyLanguage": "en"
},
"pullRequest": {
"autoLinkTickets": true
},
"issues": {
"commentOnPR": true,
"jiraUrl": "",
"githubIssuesUrl": ""
},
"branches": {
"development": "develop"
},
"worktreeFiles": [".env", ".env.local"]
},
"web": {
"path": "/Users/dev/projects/my-web",
"keywords": ["frontend", "ui", "react"]
}
}
}
The
versionfield is managed automatically by the installer.
Repository settings
Each repository can be independently configured:
Languages
| Setting | Description | Default |
|---|---|---|
commit |
Language for commit messages | en |
pullRequest |
Language for PR title and description | en |
jiraComment |
Language for Jira comments | en |
discussion |
Language for Claude Code interactions | en |
Supported languages:
en(English) andfr(French).
Commit settings
| Setting | Description | Default |
|---|---|---|
style |
single-line or multi-line (with body) |
single-line |
format |
conventional, angular, gitmoji, or none |
angular |
coAuthor |
Add Claude as co-author in commits | true |
includeTicketId |
Add ticket ID from branch name in commit message | true |
Resolve settings
| Setting | Description | Default |
|---|---|---|
commitMode |
new (new commit + push) or amend (amend + force-push) |
new |
useCommitConfig |
Inherit format/style from commit settings | true |
replyToComments |
Reply in-thread on GitHub for each resolved comment | true |
replyLanguage |
Language for comment replies (en, fr) |
en |
Pull Request settings
| Setting | Description | Default |
|---|---|---|
autoLinkTickets |
Add Jira/GitHub ticket links in PR description | true |
Issues settings
| Setting | Description | Default |
|---|---|---|
commentOnPR |
Add comment with PR link when creating the PR | true |
jiraUrl |
Base URL for Jira instance | "" |
githubIssuesUrl |
URL for GitHub Issues | "" |
Branches settings
| Setting | Description | Default |
|---|---|---|
development |
Base branch for worktrees and PRs (e.g. develop, main) |
"" |
If
developmentis empty, the skill prompts the user to specify the base branch.
Worktree files
| Setting | Description | Default |
|---|---|---|
worktreeFiles |
Files to auto-copy from main repo to worktrees (e.g., .env) |
[] |
When creating a worktree, Magic Slash copies these files from the main repository. If not configured, it auto-detects common untracked files and offers to save them for future use.
Keywords
Keywords are used for smart repository selection when starting a task:
- When a Jira ticket has labels/components matching keywords → +10 points
- When keywords are found in the ticket title → +5 points
- When keywords are found in the description → +2 points
- If no keywords are specified, the repository name is used as default
Project structure
magic-slash/
├── .github/
│ ├── ISSUE_TEMPLATE/ # Bug report, feature request templates & config
│ ├── workflows/ # CI and release workflows
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── dependabot.yml
├── desktop/ # Electron desktop app
│ ├── src/
│ │ ├── main/ # Main process (config, PTY, IPC)
│ │ ├── preload/ # Secure bridge
│ │ └── renderer/ # React UI (pages, components, hooks)
│ ├── resources/ # App icons & logo
│ └── package.json
├── skills/ # Claude Code skills (7 skills)
│ ├── magic-start/ # Start a task
│ │ ├── SKILL.md
│ │ └── references/ # Messages, glossary, API docs, templates
│ ├── magic-continue/ # Resume work on a ticket
│ │ ├── SKILL.md
│ │ └── references/
│ ├── magic-commit/ # Create atomic commits
│ │ ├── SKILL.md
│ │ └── references/
│ ├── magic-pr/ # Push and create PR
│ │ ├── SKILL.md
│ │ └── references/
│ ├── magic-review/SKILL.md # Review a Pull Request
│ ├── magic-resolve/ # Address review feedback
│ │ ├── SKILL.md
│ │ └── references/
│ ├── magic-done/SKILL.md # Finalize after merge
│ └── evals/ # Eval set and results
├── docs/ # Landing page (GitHub Pages)
│ ├── index.html # Main page
│ ├── documentation.html # Documentation page
│ ├── logo.svg # Logo (vector)
│ ├── fonts/ # Custom fonts (Avenir, CeraPro)
│ └── CNAME # Custom domain config
├── install/
│ ├── install.sh # Installation script
│ ├── uninstall.sh # Uninstallation script
│ └── magic-slash # CLI script (launches Desktop app)
├── CHANGELOG.md # Version history
├── CODE_OF_CONDUCT.md # Community guidelines
├── CONTRIBUTING.md # Contribution guide
├── LICENSE # MIT License
├── README.md # This file
├── SECURITY.md # Security policy
├── commitlint.config.js # Commit message linting
├── eslint.config.mjs # ESLint configuration
├── vitest.config.ts # Test configuration
└── package.json # Dev dependencies (linters, tests)
Contributing
Contributions are welcome! Please read our contributing guidelines before getting started.
- Contributing Guide - How to contribute to the project
- Code of Conduct - Our community standards
- Security Policy - How to report security vulnerabilities
Quick Start for Contributors
# Clone the repository
git clone https://github.com/xrequillart/magic-slash.git
cd magic-slash
# Install dev dependencies
npm install
# Install yamllint (required for YAML linting)
pip install yamllint # or: brew install yamllint
# Run linters
npm run lint
# Run tests
npm test
# Install desktop dependencies and run in dev mode
npm run desktop:install
npm run desktop
Acknowledgments
Magic Slash is built with and for:
- Claude Code - AI-powered coding assistant
- Atlassian MCP - Jira and Confluence integration
- GitHub MCP - GitHub integration
- Conventional Commits - Commit message standard
- Electron - Desktop application framework
- React - UI library for desktop app
- Tailwind CSS - Utility-first CSS framework
License
MIT - See LICENSE for details.
Made with love by Xrequillart
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found