Use when running CLI tools like jira, confluence, or other command-line utilities. Executes all CLI commands through the Docker container 'dev-cli-tools' instead of running them directly on the host system.
ALWAYS use this approach when:
jira commandsconfluence commandsgh commandsdev-cli-tools container runningDo NOT use when:
docker ps, docker exec, etc.)Before using any CLI command, verify the container is running:
docker ps --filter "name=dev-cli-tools" --filter "status=running"
docker ps -a --filter "name=dev-cli-tools"docker start dev-cli-toolsBase pattern for all CLI commands:
docker exec dev-cli-tools <command> <arguments>
Interactive commands (if needed):
docker exec -it dev-cli-tools <command> <arguments>
Instead of running jira directly, wrap it with docker exec:
| Direct Command | Container Command |
|---|---|
jira issue view PROJ-123 | docker exec dev-cli-tools jira issue view PROJ-123 |
jira issue list -a$(jira me) | docker exec dev-cli-tools jira issue list -a$(docker exec dev-cli-tools jira me) |
jira issue create -tTask -s"Summary" | docker exec dev-cli-tools jira issue create -tTask -s"Summary" |
jira sprint list --state active | docker exec dev-cli-tools jira sprint list --state active |
jira me | docker exec dev-cli-tools jira me |
Nested command substitution:
When a command uses command substitution like $(jira me), wrap the inner command too:
# Instead of: jira issue list -a$(jira me)
docker exec dev-cli-tools sh -c 'jira issue list -a$(jira me)'
Or run the inner command separately first:
$user = docker exec dev-cli-tools jira me
docker exec dev-cli-tools jira issue list -a$user
Instead of running confluence directly, wrap it with docker exec:
| Direct Command | Container Command |
|---|---|
confluence page view <pageId> | docker exec dev-cli-tools confluence page view <pageId> |
confluence page search "query" | docker exec dev-cli-tools confluence page search "query" |
confluence page create --space KEY --title "Title" | docker exec dev-cli-tools confluence page create --space KEY --title "Title" |
confluence space list | docker exec dev-cli-tools confluence space list |
For commands with multi-line input or complex quoting:
# Option 1: Use here-strings (PowerShell)
$content = @"
Multi-line content here
Can span multiple lines
"@
docker exec dev-cli-tools confluence page create --space KEY --title "Title" --body $content
# Option 2: Write to a temp file in container
docker exec dev-cli-tools sh -c "echo 'content' > /tmp/input.txt"
docker exec dev-cli-tools jira issue create -tTask -s"Summary" -b"$(cat /tmp/input.txt)"
Pass environment variables to container commands:
docker exec -e JIRA_API_TOKEN=$env:JIRA_API_TOKEN dev-cli-tools jira me
Or use variables already set in the container (preferred if configured):
# Variables should be configured when starting the container
docker exec dev-cli-tools jira me
If CLI tools need to access files:
Copy files into container:
docker cp local-file.txt dev-cli-tools:/tmp/
docker exec dev-cli-tools confluence page create --space KEY --body-file /tmp/local-file.txt
Copy output from container:
docker exec dev-cli-tools confluence page view 12345 --output json > output.json
Use mounted volumes (if container was started with volume mounts):
# Assuming /workspace is mounted in container
docker exec dev-cli-tools jira issue create -tTask -s"Summary" -b"$(cat /workspace/description.txt)"
Container not found:
Error: No such container: dev-cli-tools
→ Inform user to start or create the container
Command not found in container:
Error: executable file not found in $PATH
→ The CLI tool may not be installed in the container
→ Check with: docker exec dev-cli-tools which jira
Permission denied:
→ May need to run with different user: docker exec -u root dev-cli-tools <command>
Check what's installed in the container:
docker exec dev-cli-tools which jira
docker exec dev-cli-tools which confluence
docker exec dev-cli-tools ls /usr/local/bin
Verify container configuration:
docker inspect dev-cli-tools
Check container logs:
docker logs dev-cli-tools
Complete workflow for viewing a Jira issue:
# 1. Check container is running
docker ps --filter "name=dev-cli-tools" --filter "status=running"
# 2. Execute the command
docker exec dev-cli-tools jira issue view PROJ-123
Complete workflow for searching Confluence:
# 1. Check container is running
docker ps --filter "name=dev-cli-tools" --filter "status=running"
# 2. Execute search
docker exec dev-cli-tools confluence page search "deployment guide"
# 3. View specific page from results
docker exec dev-cli-tools confluence page view 12345
When the jira or confluence skills are loaded:
docker exec dev-cli-tools wrapper to all CLI commandsPriority: This skill takes precedence over direct CLI execution in jira/confluence skills.