How this command is triggered — by the user, by Claude, or both
Slash command
/jira:setupThis command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# /jira:setup - Configure JIRA Credentials and Settings Interactive configuration wizard for jira plugin. ## Task Set up JIRA connection credentials and default settings for the jira plugin. ### Step 0: Resolve Plugin Root Extract `PLUGIN_ROOT` from the `<jira-context>` system reminder injected by the UserPromptSubmit hook. Use the value from `<plugin-root>`. Then invoke the `setup-plugin-env` skill to ensure the venv is ready. --- ### Step 1: Check for Existing Configuration Check if configuration already exists: ### Step 2: Interactive Configuration Wizard Use AskUserQuestion...
Interactive configuration wizard for jira plugin.
Set up JIRA connection credentials and default settings for the jira plugin.
Extract PLUGIN_ROOT from the <jira-context> system reminder
injected by the UserPromptSubmit hook. Use the value from <plugin-root>.
Then invoke the setup-plugin-env skill to ensure the venv is ready.
Check if configuration already exists:
CONFIG_FILE="$HOME/.claude/jira.local.md"
if [ -f "$CONFIG_FILE" ]; then
echo "📋 Found existing configuration at $CONFIG_FILE"
# Check if --reset flag was provided
if [[ "$*" == *"--reset"* ]]; then
echo "🔄 Resetting configuration..."
else
echo ""
echo "Configuration already exists. Options:"
echo "1. Keep existing configuration"
echo "2. Update specific settings"
echo "3. Reset all settings"
echo ""
# Continue to interactive wizard
fi
else
echo "📝 No existing configuration found. Starting setup wizard..."
fi
Use AskUserQuestion to gather configuration values:
Question 1: JIRA Server URL
jira_urlQuestion 2: Authentication Token
jira_patQuestion 3: Default Username
default_usernameQuestion 4: Default Project
default_projectQuestion 5: Current Sprint (optional)
current_sprint_idBefore saving, test the JIRA connection:
VENV_PYTHON=".claude/jira/venv/bin/python"
echo ""
echo "🔍 Testing JIRA connection..."
# Create temporary config for testing
TEMP_CONFIG=$(mktemp)
cat > "$TEMP_CONFIG" << EOF
---
jira_url: "$jira_url"
jira_pat: "$jira_pat"
---
EOF
# Set environment variables for test
export JIRA_URL="$jira_url"
export JIRA_API_TOKEN="$jira_pat"
# Test connection
TEST_RESULT=$("$VENV_PYTHON" "$PLUGIN_ROOT/scripts/jira_client.py" test_connection 2>&1)
if echo "$TEST_RESULT" | grep -q '"success": true'; then
echo "✅ Connection successful!"
# Extract username if auto-detect selected
if [ "$default_username" == "Auto-detect from API" ] || [ -z "$default_username" ]; then
default_username=$(echo "$TEST_RESULT" | grep -o '"user": "[^"]*"' | cut -d'"' -f4)
echo " Detected username: $default_username"
fi
else
echo "❌ Connection failed!"
echo ""
echo "Error details:"
echo "$TEST_RESULT"
echo ""
echo "Please verify your credentials and try again."
exit 1
fi
# Clean up temp config
rm -f "$TEMP_CONFIG"
Create or update .claude/jira.local.md with YAML frontmatter:
CONFIG_FILE="$HOME/.claude/jira.local.md"
CONFIG_DIR="$(dirname "$CONFIG_FILE")"
# Ensure .claude directory exists
mkdir -p "$CONFIG_DIR"
# Create configuration file
cat > "$CONFIG_FILE" << EOF
---
jira_url: "$jira_url"
jira_pat: "$jira_pat"
default_username: "$default_username"
default_project: "$default_project"
current_sprint_id: "$current_sprint_id"
cache_duration: 14400
default_jql_filters: "assignee = currentUser() AND resolution = Unresolved ORDER BY priority DESC"
project_repo_mappings: {}
---
# jira Plugin Configuration
This file stores your JIRA connection settings and preferences for the jira plugin.
## Credentials
- **JIRA URL:** $jira_url
- **Username:** $default_username
## Defaults
- **Project:** $default_project
- **Sprint:** ${current_sprint_id:-"(not set)"}
## Cache Settings
- **Duration:** 14400 seconds (4 hours)
## Repository Mappings
Use \`/jira:repo-add\`, \`/jira:repo-remove\`, and \`/jira:repo-list\` to manage project→repository mappings for code analysis.
## Security Note
This file contains your Personal Access Token. Keep it secure:
- Do not commit to version control
- Do not share with others
- Rotate tokens regularly
EOF
chmod 600 "$CONFIG_FILE"
echo ""
echo "✅ Configuration saved to $CONFIG_FILE"
echo " (File permissions set to 600 for security)"
Show configuration summary:
echo ""
echo "📊 Configuration Summary"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "JIRA Server: $jira_url"
echo "Username: $default_username"
echo "Default Project: $default_project"
echo "Current Sprint: ${current_sprint_id:-(not set)}"
echo "Cache Duration: 14400 seconds (4 hours)"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "✨ Setup complete! You can now use jira commands:"
echo ""
echo " /jira:my-issues - List your assigned issues"
echo " /jira:sprint - List issues in current sprint"
echo " /jira:summarize KEY - Summarize a JIRA issue"
echo ""
echo "To update settings later, run: /jira:setup --reset"
echo ""
Inform user about environment variable option:
echo "💡 Alternative: Environment Variables"
echo ""
echo "Instead of storing credentials in the config file, you can use environment variables:"
echo ""
echo " export JIRA_URL=\"$jira_url\""
echo " export JIRA_API_TOKEN=\"your-token-here\""
echo " export JIRA_AUTH_TYPE=\"bearer\""
echo ""
echo "Environment variables override config file settings."
echo ""
If connection test fails:
If file write fails:
.claude/ directoryIf --reset flag is provided:
.claude/jira.local.md.bak/jira:setup again/jira:repo-add to configure).claude/jira.local.md to version controlnpx claudepluginhub rhuss/cc-jira --plugin jira/configure-jiraSets up Jira API credentials interactively, via environment variables, or config file, enabling issue import. Verifies the connection and provides troubleshooting guidance.
/jira-assistant-setupGuides conversational setup of JIRA Assistant Skills: checks prerequisites, installs jira-as package, collects credentials and API token, configures environment variables, validates connection.
/f5-jiraManages unified Jira integration: setup connection, sync issues/files, check status, convert Excel/CSV, handle issues/attachments via subcommands.
/jiraManages Jira tickets: fetch and analyze requirements, add comments, transition status, or search issues with JQL.
/setupGuides interactive setup wizard for Jira Orchestrator v7.5.0: adds Atlassian MCP server, completes OAuth auth, configures Neon PostgreSQL/Redis/Temporal, verifies connections.
/setupInteractively configures MCP servers for Linear, Jira, and GitHub Issues integration, merging settings into project or global config.