Prompt Engineering Guide
Last updated
Last updated
Welcome to the Cline Prompting Guide! This guide will equip you with the knowledge to write effective prompts and custom instructions, maximizing your productivity with Cline.
Think of custom instructions as Cline's programming. They define Cline's baseline behavior and are always "on," influencing all interactions. Instructions can be broad and abstract, or specific and explicit. You might want Cline to have a unique personality, or produce output in a particular file format, or adhere to certain architectural principles. Custom instructions can standardize Cline's output in ways you define, which is especially valuable when working with others. See the for using Custom Instructions in a team context. NOTE: Modifying the Custom Instructions field updates Cline's prompt cache, discarding accumulated context. This causes a temporary increase in cost while that context is replaced. Update Custom Instructions between conversations whenever possible.
To add custom instructions:
Open VSCode
Click the Cline extension settings dial ⚙️
Find the "Custom Instructions" field
Paste your instructions
Custom instructions are powerful for:
Enforcing Coding Style and Best Practices: Ensure Cline always adheres to your team's coding conventions, naming conventions, and best practices.
Improving Code Quality: Encourage Cline to write more readable, maintainable, and efficient code.
Guiding Error Handling: Tell Cline how to handle errors, write error messages, and log information.
NOTE: Modifying the .clinerules
file updates Cline's prompt cache, discarding accumulated context. This causes a temporary increase in cost while that context is replaced. Update the .clinerules
file between conversations whenever possible.
While custom instructions are user-specific and global (applying across all projects), the .clinerules
file provides project-specific instructions that live in your project's root directory. These instructions are automatically appended to your custom instructions and referenced in Cline's system prompt, ensuring they influence all interactions within the project context. This makes it an excellent tool for:
The .clinerules
file is excellent for:
Maintaining project standards across team members
Enforcing development practices
Managing documentation requirements
Setting up analysis frameworks
Defining project-specific behaviors
Version Controlled: The .clinerules
file becomes part of your project's source code
Team Consistency: Ensures consistent behavior across all team members
Project-Specific: Rules and standards tailored to each project's needs
Institutional Knowledge: Maintains project standards and practices in code
Place the .clinerules
file in your project's root directory:
Be Clear and Concise: Use simple language and avoid ambiguity.
Focus on Desired Outcomes: Describe the results you want, not the specific steps.
Test and Iterate: Experiment to find what works best for your workflow.
While a single .clinerules
file works well for simpler projects, Cline now supports a .clinerules
folder for more sophisticated rule organization. This modular approach brings several advantages:
Instead of a single file, create a .clinerules/
directory in your project root:
Cline automatically processes all Markdown files inside the .clinerules/
directory, combining them into a unified set of rules. The numeric prefixes (optional) help organize files in a logical sequence.
For projects with multiple contexts or teams, maintain a rules bank directory:
Contextual Activation: Copy only relevant rules from the bank to the active folder
Easier Maintenance: Update individual rule files without affecting others
Team Flexibility: Different team members can activate rules specific to their current task
Reduced Noise: Keep the active ruleset focused and relevant
Switch between client projects:
Adapt to different tech stacks:
Keep individual rule files focused on specific concerns
Use descriptive filenames that clearly indicate the rule's purpose
Consider git-ignoring the active .clinerules/
folder while tracking the clinerules-bank/
Create team scripts to quickly activate common rule combinations
The folder system transforms your Cline rules from a static document into a dynamic knowledge system that adapts to your team's changing contexts and requirements.
The .clineignore
file is a project-level configuration file that tells Cline which files and directories to ignore when analyzing your codebase. Similar to .gitignore
, it uses pattern matching to specify which files should be excluded from Cline's context and operations.
Reduce Noise: Exclude auto-generated files, build artifacts, and other non-essential content
Improve Performance: Limit the amount of code Cline needs to process
Focus Attention: Direct Cline to relevant parts of your codebase
Protect Sensitive Data: Prevent Cline from accessing sensitive configuration files
Prompting is how you communicate your needs for a given task in the back-and-forth chat with Cline. Cline understands natural language, so write conversationally.
Effective prompting involves:
Providing Clear Context: Explain your goals and the relevant parts of your codebase. Use @
to reference files or folders.
Breaking Down Complexity: Divide large tasks into smaller steps.
Asking Specific Questions: Guide Cline toward the desired outcome.
Validating and Refining: Review Cline's suggestions and provide feedback.
Starting a New Task: "Cline, let's start a new task. Create user-authentication.js
. We need to implement user login with JWT tokens. Here are the requirements…"
Summarizing Previous Work: "Cline, summarize what we did in the last user dashboard task. I want to capture the main features and outstanding issues. Save this to cline_docs/user-dashboard-summary.md
."
Analyzing an Error: "Cline, I'm getting this error: [error message]. It seems to be from [code section]. Analyze this error and suggest a fix."
Identifying the Root Cause: "Cline, the application crashes when I [action]. The issue might be in [problem areas]. Help me find the root cause and propose a solution."
Improving Code Structure: "Cline, this function is too long and complex. Refactor it into smaller functions."
Simplifying Logic: "Cline, this code is hard to understand. Simplify the logic and make it more readable."
Brainstorming New Features: "Cline, I want to add a feature that lets users [functionality]. Brainstorm some ideas and consider implementation challenges."
Generating Code: "Cline, create a component that displays user profiles. The list should be sortable and filterable. Generate the code for this component."
Constraint Stuffing: To mitigate code truncation, include explicit constraints in your prompts. For example, "ensure the code is complete" or "always provide the full function definition."
Confidence Checks: Ask Cline to rate its confidence (e.g., "on a scale of 1-10, how confident are you in this solution?")
Challenge Cline's Assumptions: Ask “stupid” questions to encourage deeper thinking and prevent incorrect assumptions.
Here are some prompting tips that users have found helpful for working with Cline:
Memory Check - pacnpal
A fun way to verify Cline stays on track during complex tasks. Try "HO HO HO" for a festive twist!
Confidence Scoring - pacnpal
Encourages critical thinking and makes decision-making transparent.
Prevent Code Truncation
Alternative phrases: "full code only" or "ensure the code is complete"
Custom Instructions Reminder
Reinforces adherence to your settings dial ⚙️ configuration.
Large File Refactoring - icklebil
Helps manage complex files through strategic decomposition.
Documentation Maintenance - icklebil
Ensures documentation stays in sync with code changes.
Structured Development - yellow_bat_coffee
Promotes organized, well-planned development.
Thorough Analysis - yellow_bat_coffee
Prevents premature coding and encourages complete understanding.
Assumptions Check - yellow_bat_coffee
Identifies potential issues early in development.
Pause and Reflect - nickbaumann98
Promotes careful consideration before taking action.
Complete Analysis - yellow_bat_coffee
Ensures thorough problem exploration.
Continuous Confidence Check - pacnpal
Maintains quality through self-assessment.
Project Structure - kvs007
Maintains project integrity.
Critical Thinking - chinesesoup
Challenges assumptions and uncovers better solutions.
Code Style - yellow_bat_coffee
May influence code organization and clarity.
Setting Expectations - steventcramer
(A humorous reminder to provide clear requirements and constructive feedback)
Cline's system prompt, on the other hand, is not user-editable (). For a broader look at prompt engineering best practices, check out .