~/content/tips-&-productivity-tricks

Tips & Productivity Tricks

Master OpenCode with these productivity tips, keyboard shortcuts, and best practices. Learn how to code faster and more efficiently with AI assistance.

last_updated: "2025-01-19"

##Essential Keyboard Shortcuts

Master these shortcuts to dramatically speed up your workflow.

###Navigation

| Shortcut | Action | |----------|--------| | Ctrl+C | Cancel current operation | | Ctrl+L | Clear screen | | Ctrl+R | Search command history | | Tab | Autocomplete commands | | ↑/↓ | Navigate history |

###Editing

| Shortcut | Action | |----------|--------| | Ctrl+A | Move to line start | | Ctrl+E | Move to line end | | Ctrl+W | Delete word backward | | Ctrl+U | Delete entire line | | Ctrl+K | Delete to end of line |

###Session Control

| Shortcut | Action | |----------|--------| | Ctrl+D | Exit OpenCode | | Ctrl+Z | Suspend to background | | Esc | Cancel multi-line input |

##Effective Prompting Techniques

###Be Specific

Instead of:

bash
fix the bug

Write:

bash
Fix the null pointer exception in src/utils/parser.ts line 45
that occurs when parsing empty JSON arrays

###Provide Context

Instead of:

bash
add validation

Write:

bash
Add email validation to the signup form in components/SignupForm.tsx
using the existing validator utility in lib/validators.ts

###Use Step-by-Step Instructions

For complex tasks, break them down:

bash
I need to add a caching layer to our API:
1. First, analyze the current API structure in src/api/
2. Design a caching strategy for GET endpoints
3. Implement using Redis with 5-minute TTL
4. Add cache invalidation on POST/PUT/DELETE
5. Write tests for the caching logic

##Slash Commands

Quick commands that boost productivity:

| Command | Description | |---------|-------------| | /help | Show all available commands | | /clear | Clear conversation history | | /model | Switch AI model | | /compact | Summarize conversation | | /cost | Show token usage and costs | | /diff | Show pending file changes | | /undo | Revert last file change |

###Custom Slash Commands

Create your own commands in ~/.config/opencode/commands.yaml:

bash
commands:
  /review:
    description: "Code review current changes"
    prompt: |
      Review the current git diff for:
      - Code quality issues
      - Potential bugs
      - Security concerns
      - Performance problems
      Provide specific suggestions for each issue found.

  /commit:
    description: "Generate commit message"
    prompt: |
      Analyze the staged changes and generate a conventional commit message.
      Format: <type>(<scope>): <description>

  /doc:
    description: "Generate documentation"
    prompt: |
      Generate comprehensive JSDoc/TSDoc documentation for the selected code.
      Include parameter descriptions, return types, and examples.

##Context Management

###Using @ Mentions

Reference specific files or symbols:

bash
@src/components/Button.tsx add hover animation
@useAuth hook add token refresh logic
@package.json update React to latest version

###Directory Context

Work with entire directories:

bash
@src/api/ refactor all endpoints to use async/await
@tests/ update all tests to use the new mock system

###Git Context

Reference git state:

bash
@git:staged review these changes before commit
@git:branch:feature-auth show what's different from main

##Workflow Optimization

###Template-Based Development

Create reusable prompts for common tasks:

bash
You: /template component

OpenCode: Creating new React component...
- Name: [UserProfile]
- Props: [user: User, onEdit: () => void]
- Style: [Tailwind CSS]
- Tests: [Yes]

###Iterative Refinement

Build complex features incrementally:

bash
Step 1: "Create basic CRUD API for products"
Step 2: "Add pagination to the list endpoint"
Step 3: "Add filtering by category and price range"
Step 4: "Add caching for frequently accessed products"
Step 5: "Add comprehensive error handling"

###Parallel Tasks

Work on multiple things simultaneously:

bash
While you implement the frontend form, also:
1. Create the API endpoint
2. Set up form validation schema
3. Write integration tests

##Configuration Tips

###Optimize for Your Stack

bash
# ~/.config/opencode/config.yaml
context:
  # Include relevant files automatically
  auto_include:
    - "package.json"
    - "tsconfig.json"
    - ".env.example"

  # Exclude noise
  exclude_patterns:
    - "node_modules/**"
    - "dist/**"
    - "*.log"

# Stack-specific settings
presets:
  react:
    include: ["src/components/**", "src/hooks/**"]
  api:
    include: ["src/routes/**", "src/middleware/**"]

###Custom Model Presets

bash
model_presets:
  quick:
    model: claude-3-5-haiku
    max_tokens: 1000

  thorough:
    model: claude-opus-4-20250514
    max_tokens: 8000
    temperature: 0.1

  creative:
    model: gpt-4o
    temperature: 0.8

##Performance Tips

###1. Use the Right Model

  • Quick tasks: Use Haiku or GPT-4o-mini
  • Complex analysis: Use Opus or GPT-4o
  • Large codebases: Use Gemini with 2M context

###2. Minimize Context

bash
# Only include necessary files
context:
  max_files: 20
  max_tokens: 50000

###3. Enable Caching

bash
cache:
  enabled: true
  ttl: 3600  # 1 hour
  max_size: 100MB

###4. Use Compact Mode

For long sessions, compress context:

bash
/compact

##Debugging Tips

###Verbose Mode

See what OpenCode is doing:

bash
opencode --verbose
# or
export OPENCODE_DEBUG=1

###View Token Usage

Monitor costs in real-time:

bash
/cost

###Inspect Context

See what files are included:

bash
/context show

##Best Practices

###1. Start with Understanding

Before making changes:

bash
Analyze the authentication flow in this codebase and explain
how user sessions are managed.

###2. Review Before Accepting

Always review proposed changes:

bash
/diff

###3. Commit Frequently

Use atomic commits:

bash
/commit
git push

###4. Document As You Go

Generate docs alongside code:

bash
After implementing this function, add JSDoc documentation.

###5. Test-Driven Approach

Write tests first:

bash
First write failing tests for user registration, then implement
the feature to make them pass.

##Common Patterns

###Bug Fix Pattern

bash
1. "Show me the error and relevant code around line X"
2. "What's causing this issue?"
3. "Fix the bug and add a test to prevent regression"
4. "/diff" to review
5. "/commit" with descriptive message

###Feature Development Pattern

bash
1. "Analyze how similar features are implemented"
2. "Plan the implementation for [feature]"
3. "Implement step by step, starting with [component]"
4. "Add tests for the new feature"
5. "Update documentation"

###Code Review Pattern

bash
1. "@git:staged review these changes"
2. "Focus on [security/performance/readability]"
3. "Suggest improvements"
4. "Apply the approved suggestions"
Comments (Coming Soon)

Configure Giscus in environment variables to enable comments.