cursor-kit-cli 1.1.1 â 1.2.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/bin/cursor-new-instance +74 -0
- package/bin/cursor-remove-instance +69 -0
- package/dist/cli.cjs +601 -62
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +601 -62
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +39 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +33 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/templates/commands/docs.md +5 -3
- package/templates/commands/explain.md +5 -3
- package/templates/commands/fix.md +5 -3
- package/templates/commands/implement.md +5 -3
- package/templates/commands/refactor.md +5 -3
- package/templates/commands/review.md +5 -3
- package/templates/commands/test.md +5 -3
- package/templates/manifest.json +11 -8
- package/templates/rules/git.mdc +0 -2
- package/templates/rules/toc.mdc +17 -9
- package/templates/skills/aesthetic/SKILL.md +121 -0
- package/templates/skills/aesthetic/assets/design-guideline-template.md +163 -0
- package/templates/skills/aesthetic/assets/design-story-template.md +135 -0
- package/templates/skills/aesthetic/references/design-principles.md +62 -0
- package/templates/skills/aesthetic/references/design-resources.md +75 -0
- package/templates/skills/aesthetic/references/micro-interactions.md +53 -0
- package/templates/skills/aesthetic/references/storytelling-design.md +50 -0
- package/templates/skills/backend-development/SKILL.mdc +95 -0
- package/templates/skills/backend-development/references/backend-api-design.md +495 -0
- package/templates/skills/backend-development/references/backend-architecture.md +454 -0
- package/templates/skills/backend-development/references/backend-authentication.md +338 -0
- package/templates/skills/backend-development/references/backend-code-quality.md +659 -0
- package/templates/skills/backend-development/references/backend-debugging.md +904 -0
- package/templates/skills/backend-development/references/backend-devops.md +494 -0
- package/templates/skills/backend-development/references/backend-mindset.md +387 -0
- package/templates/skills/backend-development/references/backend-performance.md +397 -0
- package/templates/skills/backend-development/references/backend-security.md +290 -0
- package/templates/skills/backend-development/references/backend-technologies.md +256 -0
- package/templates/skills/backend-development/references/backend-testing.md +429 -0
- package/templates/skills/frontend-design/SKILL.mdc +41 -0
- package/templates/skills/frontend-design/references/animejs.md +396 -0
- package/templates/skills/frontend-development/SKILL.mdc +399 -0
- package/templates/skills/frontend-development/resources/common-patterns.md +331 -0
- package/templates/skills/frontend-development/resources/complete-examples.md +872 -0
- package/templates/skills/frontend-development/resources/component-patterns.md +502 -0
- package/templates/skills/frontend-development/resources/data-fetching.md +767 -0
- package/templates/skills/frontend-development/resources/file-organization.md +502 -0
- package/templates/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/templates/skills/frontend-development/resources/performance.md +406 -0
- package/templates/skills/frontend-development/resources/routing-guide.md +364 -0
- package/templates/skills/frontend-development/resources/styling-guide.md +428 -0
- package/templates/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/templates/skills/problem-solving/SKILL.mdc +96 -0
- package/templates/skills/problem-solving/references/attribution.md +69 -0
- package/templates/skills/problem-solving/references/collision-zone-thinking.md +79 -0
- package/templates/skills/problem-solving/references/inversion-exercise.md +91 -0
- package/templates/skills/problem-solving/references/meta-pattern-recognition.md +87 -0
- package/templates/skills/problem-solving/references/scale-game.md +95 -0
- package/templates/skills/problem-solving/references/simplification-cascades.md +80 -0
- package/templates/skills/problem-solving/references/when-stuck.md +72 -0
- package/templates/skills/research/SKILL.mdc +168 -0
- package/templates/skills/sequential-thinking/.env.example +8 -0
- package/templates/skills/sequential-thinking/README.md +183 -0
- package/templates/skills/sequential-thinking/SKILL.mdc +94 -0
- package/templates/skills/sequential-thinking/package.json +31 -0
- package/templates/skills/sequential-thinking/references/advanced-strategies.md +79 -0
- package/templates/skills/sequential-thinking/references/advanced-techniques.md +76 -0
- package/templates/skills/sequential-thinking/references/core-patterns.md +95 -0
- package/templates/skills/sequential-thinking/references/examples-api.md +88 -0
- package/templates/skills/sequential-thinking/references/examples-architecture.md +94 -0
- package/templates/skills/sequential-thinking/references/examples-debug.md +90 -0
- package/templates/skills/sequential-thinking/scripts/format-thought.js +159 -0
- package/templates/skills/sequential-thinking/scripts/process-thought.js +236 -0
- package/templates/skills/sequential-thinking/tests/format-thought.test.js +133 -0
- package/templates/skills/sequential-thinking/tests/process-thought.test.js +215 -0
- package/templates/skills/ui-styling/LICENSE.txt +202 -0
- package/templates/skills/ui-styling/SKILL.mdc +321 -0
- package/templates/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/templates/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/templates/skills/ui-styling/references/shadcn-components.md +424 -0
- package/templates/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/templates/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/templates/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/templates/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/templates/rules/frontend-design.mdc +0 -48
- package/templates/rules/performance.mdc +0 -54
- package/templates/rules/react.mdc +0 -58
- package/templates/rules/security.mdc +0 -50
- package/templates/rules/testing.mdc +0 -54
- package/templates/rules/typescript.mdc +0 -36
package/README.md
CHANGED
|
@@ -39,6 +39,7 @@ ck init
|
|
|
39
39
|
- **đ Commands** - Reusable prompt templates for common tasks
|
|
40
40
|
- **đ Rules** - Project-specific AI behavior guidelines
|
|
41
41
|
- **đ Sync** - Keep configurations updated from the community
|
|
42
|
+
- **đĨī¸ Multi-Instance** - Run multiple Cursor accounts simultaneously (macOS)
|
|
42
43
|
- **đ¨ Beautiful CLI** - Delightful terminal experience
|
|
43
44
|
|
|
44
45
|
## đĻ Commands
|
|
@@ -98,6 +99,41 @@ cursor-kit remove -t command -n my-command # Quick remove
|
|
|
98
99
|
cursor-kit remove -f # Skip confirmation
|
|
99
100
|
```
|
|
100
101
|
|
|
102
|
+
### `instance`
|
|
103
|
+
|
|
104
|
+
Manage multiple Cursor IDE instances for multi-account login. **macOS only.**
|
|
105
|
+
|
|
106
|
+
This command allows you to create separate Cursor instances, each with its own identity (bundle ID) and data directory. Perfect for users who need to work with multiple Cursor accounts simultaneously.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
cursor-kit instance # Interactive mode
|
|
110
|
+
cursor-kit instance -l # List existing instances
|
|
111
|
+
cursor-kit instance -a create -n "Cursor Work" # Create instance
|
|
112
|
+
cursor-kit instance -a remove -n "Cursor Work" # Remove instance
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**How it works:**
|
|
116
|
+
- Creates a copy of Cursor.app in `~/Applications/`
|
|
117
|
+
- Assigns a unique bundle identifier (e.g., `com.cursor.cursorwork`)
|
|
118
|
+
- Creates a separate data directory in `~/Library/Application Support/`
|
|
119
|
+
- Re-signs the app with an ad-hoc signature
|
|
120
|
+
- Each instance can be logged into with a different Cursor account
|
|
121
|
+
|
|
122
|
+
**Example workflow:**
|
|
123
|
+
```bash
|
|
124
|
+
# Create an instance for work projects
|
|
125
|
+
cursor-kit instance -a create -n "Cursor Enterprise"
|
|
126
|
+
|
|
127
|
+
# Create another for personal use
|
|
128
|
+
cursor-kit instance -a create -n "Cursor Personal"
|
|
129
|
+
|
|
130
|
+
# List all your instances
|
|
131
|
+
cursor-kit instance --list
|
|
132
|
+
|
|
133
|
+
# Remove an instance when no longer needed
|
|
134
|
+
cursor-kit instance -a remove -n "Cursor Personal"
|
|
135
|
+
```
|
|
136
|
+
|
|
101
137
|
## đ Directory Structure
|
|
102
138
|
|
|
103
139
|
After running `cursor-kit init`, your project will have:
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# OS guard â must be macOS
|
|
5
|
+
if [ "$(uname)" != "Darwin" ]; then
|
|
6
|
+
echo "This command only works on macOS." >&2
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# === Arguments ===
|
|
12
|
+
NEW_APP_NAME="${1:-}"
|
|
13
|
+
|
|
14
|
+
if [ -z "$NEW_APP_NAME" ]; then
|
|
15
|
+
echo "Usage: $0 \"New App Name (e.g. Cursor Enterprise)\"" >&2
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# === Config based on name ===
|
|
20
|
+
ORIG_APP_NAME="Cursor"
|
|
21
|
+
ORIG_APP="/Applications/$ORIG_APP_NAME.app"
|
|
22
|
+
|
|
23
|
+
# slug: lowercase, alphanumeric only, used in bundle id / data dir
|
|
24
|
+
SLUG="$(echo "$NEW_APP_NAME" | tr '[:upper:]' '[:lower:]' | tr -cd '[:alnum:]')"
|
|
25
|
+
[ -z "$SLUG" ] && SLUG="custom"
|
|
26
|
+
|
|
27
|
+
BUNDLE_ID="com.cursor.$SLUG"
|
|
28
|
+
TARGET_APP="$HOME/Applications/$NEW_APP_NAME.app"
|
|
29
|
+
DATA_DIR="$HOME/Library/Application Support/${NEW_APP_NAME// /}"
|
|
30
|
+
|
|
31
|
+
echo "New app name: $NEW_APP_NAME"
|
|
32
|
+
echo "Bundle identifier: $BUNDLE_ID"
|
|
33
|
+
echo "Target app: $TARGET_APP"
|
|
34
|
+
echo "Data dir: $DATA_DIR"
|
|
35
|
+
echo
|
|
36
|
+
|
|
37
|
+
# === Step 1: Copy original app ===
|
|
38
|
+
if [ ! -d "$ORIG_APP" ]; then
|
|
39
|
+
echo "â Original app not found at: $ORIG_APP" >&2
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
echo "đ Creating $HOME/Applications if needed..."
|
|
44
|
+
mkdir -p "$HOME/Applications"
|
|
45
|
+
|
|
46
|
+
echo "đĻ Copying $ORIG_APP -> $TARGET_APP ..."
|
|
47
|
+
cp -R "$ORIG_APP" "$TARGET_APP"
|
|
48
|
+
|
|
49
|
+
# === Step 3: Give each app its own identity ===
|
|
50
|
+
APP="$TARGET_APP"
|
|
51
|
+
PLIST="$APP/Contents/Info.plist"
|
|
52
|
+
|
|
53
|
+
echo "đ Setting CFBundleIdentifier to $BUNDLE_ID in $PLIST ..."
|
|
54
|
+
if /usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $BUNDLE_ID" "$PLIST"; then
|
|
55
|
+
echo "â
CFBundleIdentifier updated."
|
|
56
|
+
else
|
|
57
|
+
echo "âšī¸ CFBundleIdentifier not found, adding..."
|
|
58
|
+
/usr/libexec/PlistBuddy -c "Add :CFBundleIdentifier string $BUNDLE_ID" "$PLIST"
|
|
59
|
+
echo "â
CFBundleIdentifier added."
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "đ Re-signing app (ad-hoc signature)..."
|
|
63
|
+
codesign --force --deep --sign - "$APP"
|
|
64
|
+
|
|
65
|
+
# === Step 4: Create separate data folders ===
|
|
66
|
+
echo "đ Creating data dir: $DATA_DIR ..."
|
|
67
|
+
mkdir -p "$DATA_DIR"
|
|
68
|
+
|
|
69
|
+
# === Step 5: Launch ===
|
|
70
|
+
echo "đ Launching $NEW_APP_NAME..."
|
|
71
|
+
open -n "$APP" --args --user-data-dir "$DATA_DIR"
|
|
72
|
+
|
|
73
|
+
echo "â
Done."
|
|
74
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# OS guard â must be macOS
|
|
5
|
+
if [ "$(uname)" != "Darwin" ]; then
|
|
6
|
+
echo "This command only works on macOS." >&2
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
# === Parse arguments ===
|
|
11
|
+
SKIP_CONFIRM=false
|
|
12
|
+
NEW_APP_NAME=""
|
|
13
|
+
|
|
14
|
+
while [[ $# -gt 0 ]]; do
|
|
15
|
+
case "$1" in
|
|
16
|
+
-y|--yes|--force)
|
|
17
|
+
SKIP_CONFIRM=true
|
|
18
|
+
shift
|
|
19
|
+
;;
|
|
20
|
+
*)
|
|
21
|
+
NEW_APP_NAME="$1"
|
|
22
|
+
shift
|
|
23
|
+
;;
|
|
24
|
+
esac
|
|
25
|
+
done
|
|
26
|
+
|
|
27
|
+
if [ -z "$NEW_APP_NAME" ]; then
|
|
28
|
+
echo "Usage: $0 [-y|--yes] \"App Name (e.g. Cursor Enterprise)\"" >&2
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
APP_PATH="$HOME/Applications/$NEW_APP_NAME.app"
|
|
33
|
+
DATA_DIR="$HOME/Library/Application Support/${NEW_APP_NAME// /}"
|
|
34
|
+
|
|
35
|
+
echo "This will remove:"
|
|
36
|
+
echo " App bundle: $APP_PATH"
|
|
37
|
+
echo " Data dir: $DATA_DIR"
|
|
38
|
+
echo
|
|
39
|
+
|
|
40
|
+
# Skip confirmation if --yes flag is provided
|
|
41
|
+
if [ "$SKIP_CONFIRM" = true ]; then
|
|
42
|
+
ans="y"
|
|
43
|
+
else
|
|
44
|
+
read -r -p "Are you sure? [y/N] " ans
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
case "$ans" in
|
|
48
|
+
y|Y|yes|YES)
|
|
49
|
+
if [ -d "$APP_PATH" ]; then
|
|
50
|
+
echo "đ Removing app bundle..."
|
|
51
|
+
rm -rf "$APP_PATH"
|
|
52
|
+
else
|
|
53
|
+
echo "âšī¸ App not found, skipping: $APP_PATH"
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
if [ -d "$DATA_DIR" ]; then
|
|
57
|
+
echo "đ Removing data directory..."
|
|
58
|
+
rm -rf "$DATA_DIR"
|
|
59
|
+
else
|
|
60
|
+
echo "âšī¸ Data dir not found, skipping: $DATA_DIR"
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
echo "â
Cleanup complete."
|
|
64
|
+
;;
|
|
65
|
+
*)
|
|
66
|
+
echo "Cancelled."
|
|
67
|
+
exit 0
|
|
68
|
+
;;
|
|
69
|
+
esac
|