> ## Documentation Index
> Fetch the complete documentation index at: https://portkey-docs-add-third-party-integration-issues-fixes.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cline

> Add enterprise-grade observability, cost tracking, and governance to your Cline AI coding assistant

Cline is an AI coding assistant that integrates directly into your VS Code environment, providing autonomous coding capabilities. While Cline offers powerful AI assistance for development tasks, Portkey adds essential enterprise controls for production deployments:

* **Unified AI Gateway** - Single interface for 250+ LLMs with API key management
* **Centralized AI observability**: Real-time usage tracking for 40+ key metrics and logs for every request
* **Governance** - Real-time spend tracking, set budget limits and RBAC in your Cline setup
* **Security Guardrails** - PII detection, content filtering, and compliance controls

This guide will walk you through integrating Portkey with Cline and setting up essential enterprise features including usage tracking, access controls, and budget management.

<Note>
  If you are an enterprise looking to standardize Cline usage across your development teams, [check out this section](#3-set-up-enterprise-governance-for-cline).
</Note>

# 1. Setting up Portkey

Portkey allows you to use 250+ LLMs with your Cline setup, with minimal configuration required. Let's set up the core components in Portkey that you'll need for integration.

<Steps>
  <Step title="Create Virtual Key">
    Virtual Keys are Portkey's secure way to manage your LLM provider API keys. Think of them like disposable credit cards for your LLM API keys, providing essential controls like:

    * Budget limits for API usage
    * Rate limiting capabilities
    * Secure API key storage

    To create a virtual key:
    Go to [Virtual Keys](https://app.portkey.ai/virtual-keys) in the Portkey App. Save and copy the virtual key ID

    <Frame>
      <img src="https://mintcdn.com/portkey-docs-add-third-party-integration-issues-fixes/iw8u5vDH8VX-5kWU/images/integrations/openai/virtual-key-2.png?fit=max&auto=format&n=iw8u5vDH8VX-5kWU&q=85&s=a8c33fd72639726334d697df5a9b5701" width="500" data-path="images/integrations/openai/virtual-key-2.png" />
    </Frame>

    <Note>
      Save your virtual key ID - you'll need it for the next step.
    </Note>
  </Step>

  <Step title="Create Default Config">
    Configs in Portkey are JSON objects that define how your requests are routed. They help with implementing features like advanced routing, fallbacks, and retries.

    We need to create a default config to route our requests to the virtual key created in Step 1.

    To create your config:

    1. Go to [Configs](https://app.portkey.ai/configs) in Portkey dashboard
    2. Create new config with:
       ```json theme={null}
       {
           "virtual_key": "YOUR_VIRTUAL_KEY_FROM_STEP1",
           "override_params": {
             "model": "gpt-4o" // Your preferred model name
           }
       }
       ```
    3. Save and note the Config name for the next step

    <Frame>
      <img src="https://mintcdn.com/portkey-docs-add-third-party-integration-issues-fixes/iw8u5vDH8VX-5kWU/images/integrations/config.png?fit=max&auto=format&n=iw8u5vDH8VX-5kWU&q=85&s=4f064fb3d8747631ac100fc2c51a8db6" width="500" data-path="images/integrations/config.png" />
    </Frame>

    <Note>
      This basic config connects to your virtual key. You can add more advanced portkey features later.
    </Note>
  </Step>

  <Step title="Configure Portkey API Key">
    Now create Portkey API key access point and attach the config you created in Step 2:

    1. Go to [API Keys](https://app.portkey.ai/api-keys) in Portkey and Create new API key
    2. Select your config from `Step 2`
    3. Generate and save your API key

    <Frame>
      <img src="https://mintcdn.com/portkey-docs-add-third-party-integration-issues-fixes/iw8u5vDH8VX-5kWU/images/integrations/api-key.png?fit=max&auto=format&n=iw8u5vDH8VX-5kWU&q=85&s=989d12de9518c2d6a263d966f5ce5897" width="500" data-path="images/integrations/api-key.png" />
    </Frame>

    <Note>
      Save your API key securely - you'll need it for Cline integration.
    </Note>
  </Step>
</Steps>

# 2. Integrate Portkey with Cline

Now that you have your Portkey components set up, let's connect them to Cline. Since Portkey provides OpenAI API compatibility, integration is straightforward and requires just a few configuration steps in your VS Code settings.

<Note>
  You need your Portkey API Key from [Step 1](#1-setting-up-portkey) before going further.
</Note>

### Opening Cline Settings

1. Open VS Code with Cline installed
2. Press `Cmd/Ctrl + Shift + P` to open the command palette
3. Search for `Cline: Open in new tab`
4. Click on the settings gear icon ⚙️ in the Cline tab

### Method 1: Using Default Config (Recommended)

This method uses the default config you created in Portkey, making it easier to manage model settings centrally.

1. In the Cline settings, navigate to **API Configuration**
2. Configure the following settings:
   * **API Provider**: Select `OpenAI Compatible`
   * **Base URL**: `https://api.portkey.ai/v1`
   * **API Key**: Your Portkey API key from the setup
   * **Model ID**: `dummy` (since the model is defined in your Portkey config)

<Warning>
  Using a default config with `override_params` is recommended as it allows you to manage all model settings centrally in Portkey, reducing maintenance overhead.
</Warning>

### Method 2: Using Custom Headers

If you prefer more direct control or need to use multiple providers dynamically, you can pass Portkey headers directly:

1. Configure the basic settings as in Method 1:
   * **API Provider**: `OpenAI Compatible`
   * **Base URL**: `https://api.portkey.ai/v1`
   * **API Key**: Your Portkey API key
   * **Model ID**: Your desired model (e.g., `gpt-4o`, `claude-3-opus-20240229`)

2. Add custom headers by clicking "Add Header" and include:

   ```
   x-portkey-virtual-key: YOUR_VIRTUAL_KEY
   ```

   Optional headers:

   ```
   x-portkey-provider: google  // Only if not using virtual key
   x-portkey-config: YOUR_CONFIG_ID  // For additional config
   ```

<Note>
  Custom headers give you flexibility but require updating headers in Cline whenever you want to change providers or models.
</Note>

You can now use Cline with all of Portkey's enterprise features enabled. Monitor your requests and usage in the [Portkey Dashboard](https://app.portkey.ai/dashboard).

# 3. Set Up Enterprise Governance for Cline

**Why Enterprise Governance?**
When deploying Cline across development teams in your organization, you need to consider several governance aspects:

* **Cost Management**: Controlling and tracking AI spending across developers
* **Access Control**: Managing which teams can use specific models
* **Usage Analytics**: Understanding how AI is being used in development workflows
* **Security & Compliance**: Protecting sensitive code and maintaining security standards
* **Reliability**: Ensuring consistent service across all developers

Portkey adds a comprehensive governance layer to address these enterprise needs. Let's implement these controls step by step.

**Enterprise Implementation Guide**

<AccordionGroup>
  <Accordion title="Step 1: Implement Budget Controls & Rate Limits">
    ### Step 1: Implement Budget Controls & Rate Limits

    Virtual Keys enable granular control over LLM access at the team/developer level. This helps you:

    * Set up [budget limits](/product/ai-gateway/virtual-keys/budget-limits) per developer
    * Prevent unexpected usage spikes using Rate limits
    * Track individual developer spending

    #### Setting Up Developer-Specific Controls:

    1. Navigate to [Virtual Keys](https://app.portkey.ai/virtual-keys) in Portkey dashboard
    2. Create new Virtual Key for each developer or team with budget limits
    3. Configure appropriate limits based on seniority or project needs

    <Frame>
      <img src="https://mintcdn.com/portkey-docs-add-third-party-integration-issues-fixes/iw8u5vDH8VX-5kWU/images/integrations/openai/virtual-key-2.png?fit=max&auto=format&n=iw8u5vDH8VX-5kWU&q=85&s=a8c33fd72639726334d697df5a9b5701" width="500" data-path="images/integrations/openai/virtual-key-2.png" />
    </Frame>
  </Accordion>

  <Accordion title="Step 2: Define Model Access Rules">
    ### Step 2: Define Model Access Rules

    As your development team scales, controlling which developers can access specific models becomes crucial. Portkey Configs provide this control layer with features like:

    #### Access Control Features:

    * **Model Restrictions**: Limit access to expensive models
    * **Code Protection**: Implement guardrails for sensitive code
    * **Reliability Controls**: Add fallbacks and retry logic

    #### Example Configuration for Development Teams:

    ```json theme={null}
    {
    	"strategy": {
    		"mode": "fallback"
    	},
    	"targets": [
    		{
    			"virtual_key": "YOUR_OPENAI_VIRTUAL_KEY",
    			"override_params": {
    				"model": "gpt-4o"
    			}
    		},
    		{
    			"virtual_key": "YOUR_ANTHROPIC_VIRTUAL_KEY",
    			"override_params": {
    				"model": "claude-3-sonnet-20240229"
    			}
    		}
    	]
    }
    ```

    Create your config on the [Configs page](https://app.portkey.ai/configs) in your Portkey dashboard.

    <Note>
      Configs can be updated anytime to adjust controls without developers needing to update their Cline settings.
    </Note>
  </Accordion>

  <Accordion title="Step 3: Implement Developer Access Controls">
    ### Step 3: Implement Developer Access Controls

    Create Developer-specific API keys that automatically:

    * Track usage per developer with virtual keys
    * Apply appropriate configs to route requests
    * Collect metadata about coding sessions
    * Enforce access permissions

    Create API keys through:

    * [Portkey App](https://app.portkey.ai/)
    * [API Key Management API](/api-reference/admin-api/control-plane/api-keys/create-api-key)

    Example using Python SDK:

    ```python theme={null}
    from portkey_ai import Portkey

    portkey = Portkey(api_key="YOUR_ADMIN_API_KEY")

    api_key = portkey.api_keys.create(
        name="frontend-team-developer",
        type="organisation",
        workspace_id="YOUR_WORKSPACE_ID",
        defaults={
            "config_id": "your-config-id",
            "metadata": {
                "environment": "development",
                "team": "frontend",
                "developer": "john.doe"
            }
        },
        scopes=["logs.view", "configs.read"]
    )
    ```

    For detailed key management instructions, see our [API Keys documentation](/api-reference/admin-api/control-plane/api-keys/create-api-key).
  </Accordion>

  <Accordion title="Step 4: Deploy & Monitor">
    ### Step 4: Deploy & Monitor

    After distributing API keys to your developers, your enterprise-ready Cline setup is ready. Each developer can now use their designated API keys with appropriate access levels and budget controls.

    Monitor usage in Portkey dashboard:

    * Cost tracking by developer
    * Model usage patterns
    * Code generation metrics
    * Error rates and performance
  </Accordion>
</AccordionGroup>

<Check>
  ### Enterprise Features Now Available

  **Cline now has:**

  * Per-developer budget controls
  * Model access governance
  * Usage tracking & attribution
  * Code security guardrails
  * Reliability features for development workflows
</Check>

# Portkey Features

Now that you have enterprise-grade Cline setup, let's explore the comprehensive features Portkey provides to ensure secure, efficient, and cost-effective AI-assisted development.

### 1. Comprehensive Metrics

Using Portkey you can track 40+ key metrics including cost, token usage, response time, and performance across all your LLM providers in real time. Filter these metrics by developer, team, or project using custom metadata.

<Frame>
  <img src="https://mintcdn.com/portkey-docs-add-third-party-integration-issues-fixes/iw8u5vDH8VX-5kWU/images/integrations/observability.png?fit=max&auto=format&n=iw8u5vDH8VX-5kWU&q=85&s=aff355af05efa0aa0168bde9e5c2de4d" width="600" data-path="images/integrations/observability.png" />
</Frame>

### 2. Advanced Logs

Portkey's logging dashboard provides detailed logs for every request made by Cline. These logs include:

* Complete request and response tracking
* Code context and generation metrics
* Developer attribution
* Cost breakdown per coding session

<Frame>
  <img src="https://mintcdn.com/portkey-docs-add-third-party-integration-issues-fixes/iw8u5vDH8VX-5kWU/images/llms/openai/logs.png?fit=max&auto=format&n=iw8u5vDH8VX-5kWU&q=85&s=2436bacd45bba4732dfb4d19fe806edc" width="3040" height="1764" data-path="images/llms/openai/logs.png" />
</Frame>

### 3. Unified Access to 250+ LLMs

Easily switch between 250+ LLMs for different coding tasks. Use GPT-4 for complex architecture decisions, Claude for detailed code reviews, or specialized models for specific languages - all through a single interface.

### 4. Advanced Metadata Tracking

Track coding patterns and productivity metrics with custom metadata:

* Language and framework usage
* Code generation vs completion tasks
* Time-of-day productivity patterns
* Project-specific metrics

<Card title="Custom Metadata" icon="tag" href="/product/ai-gateway/metadata" />

### 5. Enterprise Access Management

<CardGroup cols={2}>
  <Card title="Budget Controls" icon="coins" href="/product/ai-gateway/virtual-keys/budget-limits">
    Set and manage spending limits per developer or team. Prevent budget overruns with automatic cutoffs.
  </Card>

  <Card title="Single Sign-On (SSO)" icon="key" href="/product/enterprise-offering/org-management/sso">
    Enterprise-grade SSO integration for seamless developer onboarding and offboarding.
  </Card>

  <Card title="Organization Management" icon="building" href="/product/enterprise-offering/org-management">
    Hierarchical structure with teams, projects, and role-based access control for development organizations.
  </Card>

  <Card title="Access Rules & Audit Logs" icon="shield-check" href="/product/enterprise-offering/access-control-management#audit-logs">
    Comprehensive audit logging for security compliance and code generation tracking.
  </Card>
</CardGroup>

### 6. Reliability Features

<CardGroup cols={3}>
  <Card title="Fallbacks" icon="life-ring" href="/product/ai-gateway/fallbacks">
    Automatically switch between models if one fails, ensuring uninterrupted coding.
  </Card>

  <Card title="Conditional Routing" icon="route" href="/product/ai-gateway/conditional-routing">
    Route requests based on code complexity or language requirements.
  </Card>

  <Card title="Load Balancing" icon="balance-scale" href="/product/ai-gateway/load-balancing">
    Distribute requests across multiple API keys or providers.
  </Card>

  <Card title="Caching" icon="database" href="/product/ai-gateway/cache-simple-and-semantic">
    Cache common code patterns to reduce costs and improve response times.
  </Card>

  <Card title="Smart Retries" icon="refresh" href="/product/ai-gateway/automatic-retries">
    Automatic retry handling for failed requests with exponential backoff.
  </Card>

  <Card title="Budget Limits" icon="shield-check" href="/product/ai-gateway/virtual-keys/budget-limits">
    Enforce spending limits to control development costs.
  </Card>
</CardGroup>

### 7. Advanced Guardrails

Protect your codebase and enhance security with real-time checks on AI interactions:

* Prevent exposure of API keys and secrets
* Block generation of malicious code patterns
* Enforce coding standards and best practices
* Custom security rules for your organization
* License compliance checks

<Card title="Guardrails" icon="shield-check" href="/product/guardrails">
  Implement real-time protection for your development environment with automatic detection and filtering of sensitive code, credentials, and security vulnerabilities.
</Card>

# FAQs

<AccordionGroup>
  <Accordion title="How do I track costs per developer?">
    Portkey provides several ways to track developer costs:

    * Create separate Virtual Keys for each developer
    * Use metadata tags to identify developers
    * Set up developer-specific API keys
    * View detailed analytics in the dashboard
  </Accordion>

  <Accordion title="What happens if a developer exceeds their budget?">
    When a developer reaches their budget limit:

    1. Further requests will be blocked
    2. The developer and admin receive notifications
    3. Coding history remains available
    4. Admins can adjust limits as needed
  </Accordion>

  <Accordion title="Can I use Cline with local or self-hosted models?">
    Yes! Portkey supports local models through Ollama and other self-hosted solutions. Configure your local endpoint as a custom provider in Portkey and use it with Cline just like any other provider.
  </Accordion>

  <Accordion title="How do I ensure code security with AI assistance?">
    Portkey provides multiple security layers:

    * Guardrails to prevent sensitive data exposure
    * Request/response filtering
    * Audit logs for all interactions
    * Custom security rules
    * PII detection and masking
  </Accordion>
</AccordionGroup>

# Next Steps

**Join our Community**

* [Discord Community](https://portkey.sh/discord-report)
* [GitHub Repository](https://github.com/Portkey-AI)

<Card title="Schedule a Demo" icon="calendar" href="https://portkey.sh/cline">
  Schedule a 1:1 call with our team to see how Portkey can transform your development workflow with Cline. Get personalized recommendations for your team's specific needs.
</Card>

<Note>
  For enterprise support and custom features for your development teams, contact our [enterprise team](https://calendly.com/portkey-ai).
</Note>
