# Codeium > ## Documentation Index --- # Source: https://docs.windsurf.com/windsurf/advanced.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt > Use this file to discover all available pages before exploring further. # Advanced Configuration > Advanced Windsurf configurations including SSH support, Dev Containers, WSL, extension marketplace settings, and gitignore access for Cascade. All advanced configurations can be found in Windsurf Settings which can be accessed by the top right dropdown → Windsurf Settings or Command Palette (Ctrl/⌘+Shift+P) → Open Windsurf Settings Page. # Enabling Cascade access to .gitignore files To provide Cascade with access to files that match patterns in your project's .gitignore , go to your Windsurf Settings and go to "Cascade Gitignore Access". By default, it is turned off. To provide access, turn it on by clicking the toggle. # SSH Support The usual SSH support in VSCode is licensed by Microsoft, so we have implemented our own just for Windsurf. It does require you to have [OpenSSH](https://www.openssh.com/) installed, but otherwise has minimal dependencies, and should "just work" like you're used to. You can access SSH under `Remote-SSH` in the Command Palette, or via the `Open a Remote Window` button in the bottom left. This extension has worked great for our internal development, but there are some known caveats and bugs: * We currently only support SSHing into Linux-based remote hosts. * The usual Microsoft "Remote - SSH" extension (and the [open-remote-ssh](https://github.com/jeanp413/open-remote-ssh) extension) will not work—please do not install them, as they conflict with our support. * We don't have all the features of the Microsoft SSH extension right now. We mostly just support the important thing: connecting to a host. If you have feature requests, let us know! * To access a devcontainer on a remote host after connecting via SSH, use the Command Palette (Ctrl/Cmd+Shift+P) and choose one of the following options: * SSH agent-forwarding is on by default, and will use Windsurf's latest connection to that host. If you're having trouble with it, try reloading the window to refresh the connection. * On Windows, you'll see some `cmd.exe` windows when it asks for your password. This is expected—we'll get rid of them soon. * If you have issues, please first make sure that you can ssh into your remote host using regular `ssh` in a terminal. If the problem persists, include the output from the `Output > Remote SSH (Windsurf)` tab in any bug reports! # Dev Containers Windsurf supports Development Containers on Mac, Windows, and Linux for both local and remote (via SSH) workflows. Prerequisites: * Local: Docker must be installed on your machine and accessible from the Windsurf terminal. * Remote over SSH: Connect to a remote host using Windsurf Remote-SSH. Docker must be installed and accessible on the remote host (from the remote shell). Your project should include a `devcontainer.json` or equivalent config. Available commands (in both local and remote windows): 1. `Dev Containers: Open Folder in Container` * Open a new workspace using a specified `devcontainer.json`. 2. `Dev Containers: Reopen in Container` * Reopen the current workspace in a new container defined by your `devcontainer.json`. 3. `Dev Containers: Attach to Running Container` * Attach to an existing Docker container and connect your current workspace to it. If the container does not follow the [Development Container Specificaton](https://containers.dev/implementors/spec/), Windsurf will attempt best-effort detection of the remote user and environment. 4. `Dev Containers: Reopen Folder Locally` * When connected to a development container, disconnect and reopen the workspace on the local filesystem. 5. `Dev Containers: Show Windsurf Dev Containers Log` * Open the Dev Containers log output for troubleshooting. These commands are available from the Command Palette and will also appear when you click the `Open a Remote Window` button in the bottom left (including when you are connected to a remote host via SSH). Related: * `Remote Explorer: Focus on Dev Containers (Windsurf) View` — quickly open the Dev Containers view. # WSL (Beta) As of version 1.1.0, Windsurf has beta support for Windows Subsystem for Linux. You must already have WSL set up and configured on your Windows machine. You can access WSL by clicking on the `Open a Remote Window` button in the bottom left, or under `Remote-WSL` in the Command Palette. # Extension Marketplace You can change the marketplace you use to download extensions from. To do this, go to `Windsurf Settings` and modify the Marketplace URL settings under the `General` section. ## Windsurf Plugins Search "Windsurf Pyright" or paste in `@id:codeium.windsurfPyright` in the extensions search bar. --- # Source: https://docs.windsurf.com/windsurf/cascade/agents-md.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt > Use this file to discover all available pages before exploring further. # AGENTS.md > Create AGENTS.md files to provide directory-scoped instructions to Cascade. Instructions automatically apply based on file location in your project. `AGENTS.md` files provide a simple way to give Cascade context-aware instructions that automatically apply based on where the file is located in your project. This is particularly useful for providing directory-specific coding guidelines, architectural decisions, or project conventions. ## How It Works When you create an `AGENTS.md` file (or `agents.md`), Windsurf automatically discovers it and uses its contents as instructions for Cascade. The behavior depends on where the file is placed: * **Root directory**: When placed at the root of your workspace or git repository, the instructions apply globally to all files (similar to an "always on" rule) * **Subdirectories**: When placed in a subdirectory, the instructions automatically apply only when working with files in that directory or its children This location-based scoping makes `AGENTS.md` ideal for providing targeted guidance without cluttering a single global configuration file. ## Creating an AGENTS.md File Simply create a file named `AGENTS.md` or `agents.md` in the desired directory. The file uses plain markdown with no special frontmatter required. ### Example Structure ``` my-project/ ├── AGENTS.md # Global instructions for the entire project ├── frontend/ │ ├── AGENTS.md # Instructions specific to frontend code │ └── src/ │ └── components/ │ └── AGENTS.md # Instructions specific to components ├── backend/ │ └── AGENTS.md # Instructions specific to backend code └── docs/ └── AGENTS.md # Instructions for documentation ``` ### Example Content Here's an example `AGENTS.md` file for a React components directory: ```markdown theme={null} # Component Guidelines When working with components in this directory: - Use functional components with hooks - Follow the naming convention: ComponentName.tsx for components, useHookName.ts for hooks - Each component should have a corresponding test file: ComponentName.test.tsx - Use CSS modules for styling: ComponentName.module.css - Export components as named exports, not default exports ## File Structure Each component folder should contain: - The main component file - A test file - A styles file (if needed) - An index.ts for re-exports ``` ## Discovery and Scoping Windsurf automatically discovers `AGENTS.md` files throughout your workspace: * **Workspace scanning**: All `AGENTS.md` files within your workspace and its subdirectories are discovered * **Git repository support**: For git repositories, Windsurf also searches parent directories up to the git root * **Case insensitive**: Both `AGENTS.md` and `agents.md` are recognized ### Automatic Scoping The key benefit of `AGENTS.md` is automatic scoping based on file location: | File Location | Scope | | ----------------------- | ------------------------------------------------------------ | | Workspace root | Applies to all files (always on) | | `/frontend/` | Applies when working with files in `/frontend/**` | | `/frontend/components/` | Applies when working with files in `/frontend/components/**` | This means you can have multiple `AGENTS.md` files at different levels, each providing increasingly specific guidance for their respective directories. ## Best Practices To get the most out of `AGENTS.md` files: * **Keep instructions focused**: Each `AGENTS.md` should contain instructions relevant to its directory's purpose * **Use clear formatting**: Bullet points, headers, and code blocks make instructions easier for Cascade to follow * **Be specific**: Concrete examples and explicit conventions work better than vague guidelines * **Avoid redundancy**: Don't repeat global instructions in subdirectory files; they inherit from parent directories ### Content Guidelines ```markdown theme={null} # Good Example - Use TypeScript strict mode - All API responses must include error handling - Follow REST naming conventions for endpoints # Less Effective Example - Write good code - Be careful with errors - Use best practices ``` ## Comparison with Rules While both `AGENTS.md` and [Rules](/windsurf/cascade/memories#rules) provide instructions to Cascade, they serve different purposes: | Feature | AGENTS.md | Rules | | -------- | -------------------------------- | ------------------------------------------------ | | Location | In project directories | `.windsurf/rules/` or global | | Scoping | Automatic based on file location | Manual (glob, always on, model decision, manual) | | Format | Plain markdown | Markdown with frontmatter | | Best for | Directory-specific conventions | Cross-cutting concerns, complex activation logic | Use `AGENTS.md` when you want simple, location-based instructions. Use Rules when you need more control over when and how instructions are applied. --- # Source: https://docs.windsurf.com/windsurf/ai-commit-message.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt > Use this file to discover all available pages before exploring further. # AI Commit Messages > Generate meaningful git commit messages automatically with AI by analyzing your code changes with a single click in Windsurf. Generate git commit messages with a single click. This feature analyzes your code changes and creates meaningful commit messages that describe what you've done. Available with no limits to all paid users! # How It Works When you're ready to commit changes: 1. Stage your files in the Git panel 2. Click the sparkle (✨) icon next to the commit message field 3. Review the generated message and edit if needed 4. Complete your commit The AI analyzes your recent code changes and creates a meaningful commit message that describes what you've done. # Best Practices For better results: * Apply general best practices for commit scope: group together small, meaningful units of changes * Review the message before committing # Limitations * Large or complex commits may result in more generic messages * Specialized terminology might not always be captured perfectly * Generated messages are suggestions and may need editing # Privacy Your code and commit messages remain private. We don't store your code changes or use them for training our models. --- # Source: https://docs.windsurf.com/windsurf/accounts/api-reference/analytics-api-introduction.md # Source: https://docs.windsurf.com/plugins/accounts/api-reference/analytics-api-introduction.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt > Use this file to discover all available pages before exploring further. # Analytics API > Enterprise analytics API for querying Windsurf usage data including autocomplete, chat, command, and Cascade metrics. ## Overview The Windsurf Analytics API enables enterprise customers to programmatically access detailed usage analytics for their teams. Query data from autocomplete, chat, command features, and Cascade with flexible filtering, grouping, and aggregation options. API data is refreshed every 3 hours ## Common Parameters Most Analytics API endpoints support these common parameters: | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------------------------------ | | `service_key` | string | Yes | Your service key for authentication | | `group_name` | string | No | Filter results to a specific group | | `start_timestamp` | string | Varies | Start time in RFC 3339 format (e.g., `2023-01-01T00:00:00Z`) | | `end_timestamp` | string | Varies | End time in RFC 3339 format (e.g., `2023-12-31T23:59:59Z`) | ## Available Endpoints The Analytics API provides three main endpoints: 1. **[User Page Analytics](/plugins/accounts/api-reference/user-page-analytics)** - Get user activity data from the teams page 2. **[Cascade Analytics](/plugins/accounts/api-reference/cascade-analytics)** - Query Cascade-specific usage metrics 3. **[Custom Analytics](/plugins/accounts/api-reference/custom-analytics)** - Flexible querying with custom selections, filters, and aggregations --- # Source: https://docs.windsurf.com/windsurf/accounts/analytics.md # Source: https://docs.windsurf.com/plugins/accounts/analytics.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt > Use this file to discover all available pages before exploring further. # Analytics > View individual user analytics, team analytics, usage patterns, and metrics for your Windsurf usage including code completion stats and AI-written code percentage. ## Individuals User analytics are available for viewing and sharing on your own [profile](https://windsurf.com/profile) page. See your completion stats, [refer](https://windsurf.com/referral) your friends, look into your language breakdown, and unlock achievement badges by using Windsurf in your daily workflow. ## Teams Windsurf makes managing your team easy from one dashboard. You will need team admin privileges in order to view the following team links. Team leads and managers can also see an aggregate of their team members' usage patterns and analytics, including Percent of Code Written (PCW) by AI, total lines of code written, total tool calls, credit consumption, and more. --- # Source: https://docs.windsurf.com/windsurf/accounts/api-reference/api-introduction.md # Source: https://docs.windsurf.com/plugins/accounts/api-reference/api-introduction.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt > Use this file to discover all available pages before exploring further. # API Reference > Enterprise API for querying Windsurf usage data and managing configurations with service key authentication. ## Overview The Windsurf API enables enterprise customers to programmatically access detailed usage analytics and manage usage configurations for their teams. The API is available for Enterprise plans only ## Base URL All API requests should be made to: ``` https://server.codeium.com/api/v1/ ``` ## Authentication The Windsurf API uses service keys for authentication. Service keys must be included in the request body of all API calls. ### Creating a Service Key 1. Navigate to your [team settings page](https://windsurf.com/team/settings) 2. Go to the "Service Keys" section 3. Create a new service key with appropriate permissions 4. Copy the generated service key for use in API requests ### Required Permissions Different API endpoints require different permissions. Refer to the individual endpoint documentation for the specific permission required: | Endpoint | Required Permission | | ------------------------------------------------------------------------------------------------------------ | ------------------- | | [Custom Analytics](/plugins/accounts/api-reference/custom-analytics) (`/Analytics`) | Analytics Read | | [User Page Analytics](/plugins/accounts/api-reference/user-page-analytics) (`/UserPageAnalytics`) | Teams Read-Only | | [Cascade Analytics](/plugins/accounts/api-reference/cascade-analytics) (`/CascadeAnalytics`) | Teams Read-Only | | [Set Usage Configuration](/plugins/accounts/api-reference/usage-config) (`/UsageConfig`) | Billing Write | | [Get Usage Configuration](/plugins/accounts/api-reference/get-usage-config) (`/GetUsageConfig`) | Billing Read | | [Get Team Credit Balance](/plugins/accounts/api-reference/get-team-credit-balance) (`/GetTeamCreditBalance`) | Billing Read | ### Using Service Keys Include your service key in the request body of all API calls: ```json theme={null} { "service_key": "your_service_key_here", // ... other parameters } ``` Keep your service keys secure and never expose them in client-side code or public repositories ## Rate Limits API requests are subject to rate limiting to ensure service stability. If you exceed the rate limit, you'll receive a `429 Too Many Requests` response. ## Support For API support and questions, please contact [Windsurf Support](https://windsurf.com/support). --- # Source: https://docs.windsurf.com/windsurf/cascade/app-deploys.md > ## Documentation Index > Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt > Use this file to discover all available pages before exploring further. # App Deploys > Deploy web applications directly from Windsurf to Netlify with public URLs, automatic builds, and project claiming for Next.js, React, Vue, and Svelte. App Deploys lets you deploy web applications and sites directly within Windsurf through Cascade tool calls. This feature helps you share your work through public URLs, update your deployments, and claim projects for further customization. This feature is in beta and support for additional frameworks, more robust builds, etc. are coming soon. ## Overview With App Deploys, you can: * Deploy a website or JS web app to a public domain * Re-deploy to the same URL after making changes * Claim the project to your personal account App Deploys are intended primarily for preview purposes. For production applications with sensitive data, we recommend claiming your deployment and following security best practices. ## Supported Providers We currently support the following deployment provider: * **Netlify** - For static sites and web applications Support for additional providers are planned for future releases. ## How It Works When you use App Deploys, your code is uploaded to our server and deployed to the provider under our umbrella account. The deployed site will be available at a public URL formatted as: ``` .windsurf.build ```