# 4.2 App Takeover

## Overview

App takeover means letting CC Switch's proxy intercept and forward a specific application's API requests.

When takeover is enabled:
- The app's API requests are forwarded through the local proxy
- Request logs and usage statistics can be recorded
- Failover functionality becomes available

## Prerequisites

The proxy service must be started before using the app takeover feature.

## Enable Takeover

### Location

Settings > Advanced > Proxy Service > App Takeover area

### Steps

1. Ensure the proxy service is started
2. Find the "App Takeover" area
3. Enable the toggle for the desired apps

### Takeover Toggles

| Toggle | Effect |
|--------|--------|
| Claude Takeover | Intercept Claude Code requests |
| Codex Takeover | Intercept Codex requests |
| Gemini Takeover | Intercept Gemini CLI requests |

Multiple app takeovers can be enabled simultaneously.

## How Takeover Works

### Configuration Changes

When takeover is enabled, CC Switch modifies the app's configuration file to point the API endpoint to the local proxy.

**Claude configuration change**:

```json
// Before takeover
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.anthropic.com"
  }
}

// After takeover
{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:15721"
  }
}
```

**Codex configuration change**:

```toml
# Before takeover
base_url = "https://api.openai.com/v1"

# After takeover
base_url = "http://127.0.0.1:15721/v1"
```

**Gemini configuration change**:

```bash
# Before takeover
GOOGLE_GEMINI_BASE_URL=https://generativelanguage.googleapis.com

# After takeover
GOOGLE_GEMINI_BASE_URL=http://127.0.0.1:15721
```

### Request Forwarding

When the proxy receives a request:

1. Identifies the request source (Claude/Codex/Gemini)
2. Looks up the currently enabled provider for that app
3. Forwards the request to the provider's actual endpoint
4. Records the request log
5. Returns the response to the app

## Takeover Status Indicators

### Main Interface Indicators

When takeover is enabled, the main interface shows the following changes:

- **Proxy logo color**: Changes from colorless to green
- **Provider cards**: The currently active provider shows a green border

### Provider Card States

| State | Border Color | Description |
|-------|--------------|-------------|
| Currently Active | Blue | Provider in the config file (non-proxy mode) |
| Proxy Active | Green | Provider actually used by the proxy |
| Normal | Default | Unused provider |

## Disable Takeover

### Steps

1. Turn off the corresponding app's takeover toggle in the proxy panel
2. Or directly stop the proxy service

### Configuration Restoration

When disabling takeover, CC Switch will:

1. Restore the app configuration to its pre-takeover state
2. Save current request logs

## Takeover and Provider Switching

### Switching Providers in Takeover Mode

When switching providers in takeover mode:

1. Click the "Enable" button on a provider in the main interface
2. The proxy immediately uses the new provider to forward requests
3. **No need to restart the CLI tool**

This is a major advantage of takeover mode: provider switching takes effect instantly.

### Switching Without Takeover

When switching providers without takeover:

1. Configuration file is modified
2. CLI tool must be restarted for changes to take effect

## Multi-app Takeover

Multiple apps can be taken over simultaneously, each managed independently:

- Independent provider configurations
- Independent failover queues
- Independent request statistics

## Use Cases

### Scenario 1: Usage Monitoring

Enable takeover + log recording to monitor API usage.

### Scenario 2: Quick Switching

With takeover enabled, switching providers does not require restarting CLI tools.

### Scenario 3: Failover

Enabling takeover is a prerequisite for using the failover feature.

## Notes

### Performance Impact

The proxy adds minimal latency (typically < 10ms), negligible for most scenarios.

### Network Requirements

In takeover mode, CLI tools must be able to access the local proxy address.

### Configuration Backup

Before enabling takeover, CC Switch backs up the original configuration and restores it when disabled.

## FAQ

### Requests Fail After Takeover

Check:
- Is the proxy service running normally
- Is the provider configuration correct
- Is the network working properly

### Configuration Not Restored After Disabling Takeover

Possible causes:
- Proxy exited abnormally
- Configuration file was modified by another program

Solutions:
- Manually edit the provider and re-save
- Or re-enable and then disable takeover
