Native Tools Skill
Use native CLI tools directly instead of building custom integrations. Claude Code has full terminal access - use it.
Quick Start
PCP follows the native-first principle: if a CLI tool exists, use it directly. Don't build wrapper scripts.
Available CLI tools:
gh- GitHub CLI (issues, PRs, repos)docker- Container managementgit- Version controlcurl- HTTP/API calls- Standard Unix tools (grep, find, ls, etc.)
Native-First Principle
Rule: Only build custom scripts for things that require:
- OAuth complexity (Microsoft Graph)
- Structured data schema (knowledge base, vault)
- NLP extraction (entity detection)
Everything else? Use the CLI directly.
GitHub CLI (gh)
Issues
# Create issue
gh issue create --repo owner/repo --title "Bug: login fails" --body "Description here"
# List issues
gh issue list --assignee @me
gh issue list --repo owner/repo --state open
# View issue
gh issue view 123 --repo owner/repo
# Close issue
gh issue close 123 --repo owner/repo
# Comment on issue
gh issue comment 123 --body "Fixed in PR #456"
Pull Requests
# Create PR
gh pr create --title "Fix login bug" --body "Fixes #123"
# List PRs
gh pr list --author @me
gh pr list --state open
# View PR
gh pr view 456
# Review PR
gh pr review 456 --approve
gh pr review 456 --request-changes --body "Please fix X"
# Merge PR
gh pr merge 456 --squash
Other gh Commands
# Search code
gh search code "function_name" --repo owner/repo
# View repo
gh repo view owner/repo
# Clone repo
gh repo clone owner/repo
# Releases
gh release list --repo owner/repo
gh release create v1.0.0 --generate-notes
Docker
Container Management
# List running containers
docker ps
# List all containers
docker ps -a
# View container logs
docker logs container_name
docker logs -f container_name # Follow
# Execute command in container
docker exec container_name command
docker exec -it container_name bash # Interactive shell
# Container stats
docker stats container_name
# Inspect container
docker inspect container_name
Compose Operations
# Start stack
docker compose up -d
# Stop stack
docker compose down
# Rebuild and start
docker compose up -d --build
# View logs
docker compose logs -f service_name
Images
# List images
docker images
# Pull image
docker pull image:tag
# Build image
docker build -t name:tag .
Git
Status and History
# Status
git status
# Log
git log --oneline -10
git log --oneline --all --graph
# Diff
git diff
git diff --staged
git diff branch1..branch2
Branching
# Create and switch
git checkout -b feature/new-thing
# Switch branch
git checkout main
# List branches
git branch -a
Commits and Push
# Add and commit
git add .
git commit -m "feat: add new feature"
# Push
git push origin branch-name
git push -u origin branch-name # Set upstream
Stash
git stash
git stash pop
git stash list
HTTP/API Calls (curl)
Basic Requests
# GET request
curl -s https://api.example.com/endpoint | jq .
# POST request with JSON
curl -s -X POST https://api.example.com/endpoint \
-H "Content-Type: application/json" \
-d '{"key": "value"}' | jq .
# With authentication
curl -s -H "Authorization: Bearer $TOKEN" \
https://api.example.com/protected | jq .
Common Patterns
# Check API status
curl -s https://api.example.com/health | jq .
# Download file
curl -L -o filename.zip https://example.com/file.zip
# Follow redirects
curl -L https://example.com/redirect
When the User Says...
| User Request | Command |
|---|---|
| "Create a GitHub issue for X" | gh issue create --title "X" --body "..." |
| "What PRs need review?" | gh pr list --state open |
| "What containers are running?" | docker ps |
| "Show me the logs for X" | docker logs X |
| "What's the git status?" | git status |
| "Commit these changes" | git add . && git commit -m "..." |
| "Call this API endpoint" | curl -s URL | jq . |
| "What's the latest release?" | gh release list --repo owner/repo |
What NOT to Build Custom Scripts For
| Need | Use This | NOT This |
|---|---|---|
| GitHub issues | gh issue create |
custom GitHub API script |
| Container logs | docker logs |
custom Docker API script |
| Git operations | git commands |
custom git wrapper |
| API testing | curl |
custom HTTP client |
| File search | find, grep |
custom file finder |
What TO Build Custom Scripts For
| Need | Why Custom? | Script |
|---|---|---|
| Microsoft Graph | OAuth token management | microsoft_graph.py |
| Knowledge base | Structured schema + search | knowledge.py |
| Entity extraction | NLP with Claude | vault_v2.py |
| Email processing | OAuth + structured storage | email_processor.py |
Tips
- Always check if a CLI tool exists first - Most common operations have excellent CLI tools
- Use
jqfor JSON output - Pipe API responses throughjq .for formatting - Use
-s(silent) with curl - Hides progress bars for cleaner output - Use
--help- Every CLI tool has help:gh issue --help,docker --help - Combine with PCP - Use CLI tools then capture results to vault if needed
Related Skills
- pcp-operations - For PCP-specific functions
- vault-operations - For capturing CLI outputs to vault
- knowledge-base - For storing permanent facts from CLI exploration