{"owner":"Skyvern-AI","repo":"skyvern","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md","AGENTS.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Development Commands\n\n### Python Backend Commands\n- **Install dependencies**: `uv sync`\n- **Run Skyvern service**: `skyvern run all` (starts both backend and UI)\n- **Run backend only**: `skyvern run server`\n- **Run UI only**: `skyvern run ui`\n- **Check status**: `skyvern status`\n- **Stop services**: `skyvern stop all`\n- **Quickstart**: `skyvern quickstart` (for first-time setup with DB migrations)\n\n### Code Quality & Testing\n- **Lint**: `ruff check` and `ruff format`\n- **Type checking**: `mypy skyvern`\n- **Run tests**: `pytest tests/`\n- **Pre-commit hooks**: `pre-commit run --all-files`\n\n### Frontend Commands (in skyvern-frontend/)\n- **Install dependencies**: `npm install`\n- **Development**: `npm run dev`\n- **Build**: `npm run build`\n- **Lint**: `npm run lint`\n- **Format**: `npm run format`\n\n### Database Management\n- **Run migrations**: `alembic upgrade head`\n- **Create migration**: `alembic revision --autogenerate -m \"description\"`\n\n## Architecture Overview\n\nSkyvern is a browser automation platform that uses LLMs and computer vision to interact with websites. The architecture consists of:\n\n### Core Components\n- **Agent System** (`skyvern/forge/agent.py`): LLM-powered agent loop for web navigation and task execution\n- **Public Library** (`skyvern/library/`): User-facing `from skyvern import Skyvern` interface and SDK-style page/browser/locator wrappers\n- **Browser Engine** (`skyvern/webeye/`): Playwright-based browser automation with computer vision\n- **Workflow Engine** (`skyvern/services/`): Orchestrates complex multi-step workflows\n- **API Layer** (`skyvern/forge/`): FastAPI-based REST API and WebSocket support\n\n### Key Directories\n- `skyvern/forge/agent.py` + `skyvern/forge/agent_functions.py`: LLM-powered agent loop for web interaction\n- `skyvern/library/`: Public `Skyvern` class and library-facing SDK wrappers\n- `skyvern/webeye/`: Browser automation, DOM scraping, action execution\n- `skyvern/forge/`: FastAPI server, API endpoints, request handling\n- `skyvern/forge/sdk/`: Internal SDK — DB, routes, schemas, workflow, copilot, executor, cache\n- `skyvern/services/`: Business logic for tasks, workflows, and browser sessions\n- `skyvern/cli/`: Command-line interface\n- `skyvern/client/`: Generated Python client SDK\n- `skyvern-frontend/`: React-based UI for task management and monitoring\n- `alembic/`: Database migrations\n\n### Workflow System\n- **Blocks**: Modular components (navigation, extraction, validation, loops, etc.)\n- **Parameters**: Dynamic values passed between blocks\n- **Runs**: Execution instances of workflows\n- **Browser Sessions**: Persistent browser state across workflow steps\n\n### Data Flow\n1. User creates tasks/workflows via UI or API\n2. Agent system plans actions using LLM analysis of screenshots\n3. Browser engine executes actions via Playwright\n4. Results are captured, processed, and stored\n5. Workflow orchestrator manages multi-step sequences\n\n## Development Notes\n\n### Environment Setup\n- Requires Python 3.11+ and Node.js\n- Uses UV for Python dependency management\n- PostgreSQL database (managed via Docker or local install)\n- Browser dependencies installed via Playwright\n\n### LLM Configuration\nConfigure via environment variables or the interactive `skyvern init` wizard:\n- Supports OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Gemini, Ollama\n- Uses `LLM_KEY` to specify which model to use\n- `SECONDARY_LLM_KEY` for lightweight agent operations\n\n### Testing Strategy\n- Unit tests in `tests/unit_tests/`\n- Integration tests require browser automation setup\n- Use `pytest` with async support for testing\n\n### Code Style\n- Python: Ruff for linting and formatting (configured in pyproject.toml)\n- TypeScript: ESLint + Prettier (configured in skyvern-frontend/)\n- Line length: 120 characters\n- Use type hints and async/await patterns","AGENTS.md":"# Skyvern Agent Guide\nThis AGENTS.md file provides comprehensive guidance for AI agents working with the Skyvern codebase. Follow these guidelines to ensure consistency and quality in all contributions.\n\n## Project Structure for Agent Navigation\n\n- `/skyvern`: Main Python package\n  - `/cli`: Command-line interface components\n  - `/client`: Client implementations and integrations\n  - `/forge`: Core automation logic and workflows\n  - `/library`: Shared utilities and helpers\n  - `/schemas`: Data models and validation schemas\n  - `/services`: Business logic and service layers\n  - `/utils`: Common utility functions\n  - `/webeye`: Web interaction and browser automation\n- `/skyvern-frontend`: Frontend application\n- `/integrations`: Third-party service integrations\n- `/alembic`: Database migrations\n- `/scripts`: Utility and deployment scripts\n\n## Coding Conventions for Agents\n\n### Python Standards\n\n- Use Python 3.11+ features and type hints\n- Follow PEP 8 with a line length of 100 characters\n- Use absolute imports for all modules\n- Document all public functions and classes with Google-style docstrings\n- Use `snake_case` for variables and functions, `PascalCase` for classes\n\n### Asynchronous Programming\n\n- Prefer async/await over callbacks\n- Use `asyncio` for concurrency\n- Always handle exceptions in async code\n- Use context managers for resource cleanup\n\n### Error Handling\n\n- Use specific exception classes\n- Include meaningful error messages\n- Log errors with appropriate severity levels\n- Never expose sensitive information in error messages\n\n## Pull Request Process\n\n1. **Branch Naming**\n   - `feature/descriptive-name` for new features\n   - `fix/issue-description` for bug fixes\n   - `chore/task-description` for maintenance tasks\n\n2. **PR Guidelines**\n   - Reference related issues with `Fixes #123` or `Closes #123`\n   - Include a clear description of changes\n   - Update relevant documentation\n   - Ensure all tests pass\n   - Get at least one approval before merging\n\n3. **Commit Message Format**\n   ```\n   [Component] Action: Brief description\n   \n   More detailed explanation if needed.\n   \n   - Bullet points for additional context\n   - Reference issues with #123\n   ```\n\n## Code Quality Checks\n\nBefore submitting code, run:\n```bash\npre-commit run --all-files\n```\n\n## Performance Considerations\n- Optimize database queries\n- Use appropriate data structures\n- Implement caching where beneficial\n- Monitor memory usage\n\n## Security Best Practices\n- Never commit secrets or credentials\n- Validate all inputs\n- Use environment variables for configuration\n- Follow the principle of least privilege\n- Keep dependencies updated\n\n## Getting Help\n- Check existing issues before opening new ones\n- Reference relevant documentation\n- Provide reproduction steps for bugs\n- Be specific about the problem and expected behavior\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Development Commands\n\n### Python Backend Commands\n- **Install dependencies**: `uv sync`\n- **Run Skyvern service**: `skyvern run all` (starts both backend and UI)\n- **Run backend only**: `skyvern run server`\n- **Run UI only**: `skyvern run ui`\n- **Check status**: `skyvern status`\n- **Stop services**: `skyvern stop all`\n- **Quickstart**: `skyvern quickstart` (for first-time setup with DB migrations)\n\n### Code Quality & Testing\n- **Lint**: `ruff check` and `ruff format`\n- **Type checking**: `mypy skyvern`\n- **Run tests**: `pytest tests/`\n- **Pre-commit hooks**: `pre-commit run --all-files`\n\n### Frontend Commands (in skyvern-frontend/)\n- **Install dependencies**: `npm install`\n- **Development**: `npm run dev`\n- **Build**: `npm run build`\n- **Lint**: `npm run lint`\n- **Format**: `npm run format`\n\n### Database Management\n- **Run migrations**: `alembic upgrade head`\n- **Create migration**: `alembic revision --autogenerate -m \"description\"`\n\n## Architecture Overview\n\nSkyvern is a browser automation platform that uses LLMs and computer vision to interact with websites. The architecture consists of:\n\n### Core Components\n- **Agent System** (`skyvern/forge/agent.py`): LLM-powered agent loop for web navigation and task execution\n- **Public Library** (`skyvern/library/`): User-facing `from skyvern import Skyvern` interface and SDK-style page/browser/locator wrappers\n- **Browser Engine** (`skyvern/webeye/`): Playwright-based browser automation with computer vision\n- **Workflow Engine** (`skyvern/services/`): Orchestrates complex multi-step workflows\n- **API Layer** (`skyvern/forge/`): FastAPI-based REST API and WebSocket support\n\n### Key Directories\n- `skyvern/forge/agent.py` + `skyvern/forge/agent_functions.py`: LLM-powered agent loop for web interaction\n- `skyvern/library/`: Public `Skyvern` class and library-facing SDK wrappers\n- `skyvern/webeye/`: Browser automation, DOM scraping, action execution\n- `skyvern/forge/`: FastAPI server, API endpoints, request handling\n- `skyvern/forge/sdk/`: Internal SDK — DB, routes, schemas, workflow, copilot, executor, cache\n- `skyvern/services/`: Business logic for tasks, workflows, and browser sessions\n- `skyvern/cli/`: Command-line interface\n- `skyvern/client/`: Generated Python client SDK\n- `skyvern-frontend/`: React-based UI for task management and monitoring\n- `alembic/`: Database migrations\n\n### Workflow System\n- **Blocks**: Modular components (navigation, extraction, validation, loops, etc.)\n- **Parameters**: Dynamic values passed between blocks\n- **Runs**: Execution instances of workflows\n- **Browser Sessions**: Persistent browser state across workflow steps\n\n### Data Flow\n1. User creates tasks/workflows via UI or API\n2. Agent system plans actions using LLM analysis of screenshots\n3. Browser engine executes actions via Playwright\n4. Results are captured, processed, and stored\n5. Workflow orchestrator manages multi-step sequences\n\n## Development Notes\n\n### Environment Setup\n- Requires Python 3.11+ and Node.js\n- Uses UV for Python dependency management\n- PostgreSQL database (managed via Docker or local install)\n- Browser dependencies installed via Playwright\n\n### LLM Configuration\nConfigure via environment variables or the interactive `skyvern init` wizard:\n- Supports OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Gemini, Ollama\n- Uses `LLM_KEY` to specify which model to use\n- `SECONDARY_LLM_KEY` for lightweight agent operations\n\n### Testing Strategy\n- Unit tests in `tests/unit_tests/`\n- Integration tests require browser automation setup\n- Use `pytest` with async support for testing\n\n### Code Style\n- Python: Ruff for linting and formatting (configured in pyproject.toml)\n- TypeScript: ESLint + Prettier (configured in skyvern-frontend/)\n- Line length: 120 characters\n- Use type hints and async/await patterns","AGENTS.md":"# Skyvern Agent Guide\nThis AGENTS.md file provides comprehensive guidance for AI agents working with the Skyvern codebase. Follow these guidelines to ensure consistency and quality in all contributions.\n\n## Project Structure for Agent Navigation\n\n- `/skyvern`: Main Python package\n  - `/cli`: Command-line interface components\n  - `/client`: Client implementations and integrations\n  - `/forge`: Core automation logic and workflows\n  - `/library`: Shared utilities and helpers\n  - `/schemas`: Data models and validation schemas\n  - `/services`: Business logic and service layers\n  - `/utils`: Common utility functions\n  - `/webeye`: Web interaction and browser automation\n- `/skyvern-frontend`: Frontend application\n- `/integrations`: Third-party service integrations\n- `/alembic`: Database migrations\n- `/scripts`: Utility and deployment scripts\n\n## Coding Conventions for Agents\n\n### Python Standards\n\n- Use Python 3.11+ features and type hints\n- Follow PEP 8 with a line length of 100 characters\n- Use absolute imports for all modules\n- Document all public functions and classes with Google-style docstrings\n- Use `snake_case` for variables and functions, `PascalCase` for classes\n\n### Asynchronous Programming\n\n- Prefer async/await over callbacks\n- Use `asyncio` for concurrency\n- Always handle exceptions in async code\n- Use context managers for resource cleanup\n\n### Error Handling\n\n- Use specific exception classes\n- Include meaningful error messages\n- Log errors with appropriate severity levels\n- Never expose sensitive information in error messages\n\n## Pull Request Process\n\n1. **Branch Naming**\n   - `feature/descriptive-name` for new features\n   - `fix/issue-description` for bug fixes\n   - `chore/task-description` for maintenance tasks\n\n2. **PR Guidelines**\n   - Reference related issues with `Fixes #123` or `Closes #123`\n   - Include a clear description of changes\n   - Update relevant documentation\n   - Ensure all tests pass\n   - Get at least one approval before merging\n\n3. **Commit Message Format**\n   ```\n   [Component] Action: Brief description\n   \n   More detailed explanation if needed.\n   \n   - Bullet points for additional context\n   - Reference issues with #123\n   ```\n\n## Code Quality Checks\n\nBefore submitting code, run:\n```bash\npre-commit run --all-files\n```\n\n## Performance Considerations\n- Optimize database queries\n- Use appropriate data structures\n- Implement caching where beneficial\n- Monitor memory usage\n\n## Security Best Practices\n- Never commit secrets or credentials\n- Validate all inputs\n- Use environment variables for configuration\n- Follow the principle of least privilege\n- Keep dependencies updated\n\n## Getting Help\n- Check existing issues before opening new ones\n- Reference relevant documentation\n- Provide reproduction steps for bugs\n- Be specific about the problem and expected behavior\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Development Commands\n\n### Python Backend Commands\n- **Install dependencies**: `uv sync`\n- **Run Skyvern service**: `skyvern run all` (starts both backend and UI)\n- **Run backend only**: `skyvern run server`\n- **Run UI only**: `skyvern run ui`\n- **Check status**: `skyvern status`\n- **Stop services**: `skyvern stop all`\n- **Quickstart**: `skyvern quickstart` (for first-time setup with DB migrations)\n\n### Code Quality & Testing\n- **Lint**: `ruff check` and `ruff format`\n- **Type checking**: `mypy skyvern`\n- **Run tests**: `pytest tests/`\n- **Pre-commit hooks**: `pre-commit run --all-files`\n\n### Frontend Commands (in skyvern-frontend/)\n- **Install dependencies**: `npm install`\n- **Development**: `npm run dev`\n- **Build**: `npm run build`\n- **Lint**: `npm run lint`\n- **Format**: `npm run format`\n\n### Database Management\n- **Run migrations**: `alembic upgrade head`\n- **Create migration**: `alembic revision --autogenerate -m \"description\"`\n\n## Architecture Overview\n\nSkyvern is a browser automation platform that uses LLMs and computer vision to interact with websites. The architecture consists of:\n\n### Core Components\n- **Agent System** (`skyvern/forge/agent.py`): LLM-powered agent loop for web navigation and task execution\n- **Public Library** (`skyvern/library/`): User-facing `from skyvern import Skyvern` interface and SDK-style page/browser/locator wrappers\n- **Browser Engine** (`skyvern/webeye/`): Playwright-based browser automation with computer vision\n- **Workflow Engine** (`skyvern/services/`): Orchestrates complex multi-step workflows\n- **API Layer** (`skyvern/forge/`): FastAPI-based REST API and WebSocket support\n\n### Key Directories\n- `skyvern/forge/agent.py` + `skyvern/forge/agent_functions.py`: LLM-powered agent loop for web interaction\n- `skyvern/library/`: Public `Skyvern` class and library-facing SDK wrappers\n- `skyvern/webeye/`: Browser automation, DOM scraping, action execution\n- `skyvern/forge/`: FastAPI server, API endpoints, request handling\n- `skyvern/forge/sdk/`: Internal SDK — DB, routes, schemas, workflow, copilot, executor, cache\n- `skyvern/services/`: Business logic for tasks, workflows, and browser sessions\n- `skyvern/cli/`: Command-line interface\n- `skyvern/client/`: Generated Python client SDK\n- `skyvern-frontend/`: React-based UI for task management and monitoring\n- `alembic/`: Database migrations\n\n### Workflow System\n- **Blocks**: Modular components (navigation, extraction, validation, loops, etc.)\n- **Parameters**: Dynamic values passed between blocks\n- **Runs**: Execution instances of workflows\n- **Browser Sessions**: Persistent browser state across workflow steps\n\n### Data Flow\n1. User creates tasks/workflows via UI or API\n2. Agent system plans actions using LLM analysis of screenshots\n3. Browser engine executes actions via Playwright\n4. Results are captured, processed, and stored\n5. Workflow orchestrator manages multi-step sequences\n\n## Development Notes\n\n### Environment Setup\n- Requires Python 3.11+ and Node.js\n- Uses UV for Python dependency management\n- PostgreSQL database (managed via Docker or local install)\n- Browser dependencies installed via Playwright\n\n### LLM Configuration\nConfigure via environment variables or the interactive `skyvern init` wizard:\n- Supports OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Gemini, Ollama\n- Uses `LLM_KEY` to specify which model to use\n- `SECONDARY_LLM_KEY` for lightweight agent operations\n\n### Testing Strategy\n- Unit tests in `tests/unit_tests/`\n- Integration tests require browser automation setup\n- Use `pytest` with async support for testing\n\n### Code Style\n- Python: Ruff for linting and formatting (configured in pyproject.toml)\n- TypeScript: ESLint + Prettier (configured in skyvern-frontend/)\n- Line length: 120 characters\n- Use type hints and async/await patterns","category":"root","tokens":981},{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Skyvern Agent Guide\nThis AGENTS.md file provides comprehensive guidance for AI agents working with the Skyvern codebase. Follow these guidelines to ensure consistency and quality in all contributions.\n\n## Project Structure for Agent Navigation\n\n- `/skyvern`: Main Python package\n  - `/cli`: Command-line interface components\n  - `/client`: Client implementations and integrations\n  - `/forge`: Core automation logic and workflows\n  - `/library`: Shared utilities and helpers\n  - `/schemas`: Data models and validation schemas\n  - `/services`: Business logic and service layers\n  - `/utils`: Common utility functions\n  - `/webeye`: Web interaction and browser automation\n- `/skyvern-frontend`: Frontend application\n- `/integrations`: Third-party service integrations\n- `/alembic`: Database migrations\n- `/scripts`: Utility and deployment scripts\n\n## Coding Conventions for Agents\n\n### Python Standards\n\n- Use Python 3.11+ features and type hints\n- Follow PEP 8 with a line length of 100 characters\n- Use absolute imports for all modules\n- Document all public functions and classes with Google-style docstrings\n- Use `snake_case` for variables and functions, `PascalCase` for classes\n\n### Asynchronous Programming\n\n- Prefer async/await over callbacks\n- Use `asyncio` for concurrency\n- Always handle exceptions in async code\n- Use context managers for resource cleanup\n\n### Error Handling\n\n- Use specific exception classes\n- Include meaningful error messages\n- Log errors with appropriate severity levels\n- Never expose sensitive information in error messages\n\n## Pull Request Process\n\n1. **Branch Naming**\n   - `feature/descriptive-name` for new features\n   - `fix/issue-description` for bug fixes\n   - `chore/task-description` for maintenance tasks\n\n2. **PR Guidelines**\n   - Reference related issues with `Fixes #123` or `Closes #123`\n   - Include a clear description of changes\n   - Update relevant documentation\n   - Ensure all tests pass\n   - Get at least one approval before merging\n\n3. **Commit Message Format**\n   ```\n   [Component] Action: Brief description\n   \n   More detailed explanation if needed.\n   \n   - Bullet points for additional context\n   - Reference issues with #123\n   ```\n\n## Code Quality Checks\n\nBefore submitting code, run:\n```bash\npre-commit run --all-files\n```\n\n## Performance Considerations\n- Optimize database queries\n- Use appropriate data structures\n- Implement caching where beneficial\n- Monitor memory usage\n\n## Security Best Practices\n- Never commit secrets or credentials\n- Validate all inputs\n- Use environment variables for configuration\n- Follow the principle of least privilege\n- Keep dependencies updated\n\n## Getting Help\n- Check existing issues before opening new ones\n- Reference relevant documentation\n- Provide reproduction steps for bugs\n- Be specific about the problem and expected behavior\n","category":"root","tokens":710}]}