Skip to main content

Qianji v2 🚀

CI PyPI version Python 3.10+ License: MIT Code style: black

Universal Browser Automation for AI - 100% OpenClaw Compatible

Qianji is an enterprise-grade browser automation tool designed for AI agents, developers, and automation workflows. It provides a robust HTTP API, CLI tool, and MCP (Model Context Protocol) support.

📖 中文文档

✨ Features

  • 🌐 HTTP API - RESTful API for any language
  • 🖥️ CLI Tool - Command-line interface with auto-completion
  • 🤖 MCP Support - Native Model Context Protocol integration
  • 🔄 Multi-Browser - Manage multiple browser instances
  • 📸 Smart Snapshots - Element detection with reference IDs
  • 🗂️ Tab Management - Create, switch, and close tabs
  • 🍪 Storage Management - Cookies, localStorage, sessionStorage
  • 🐛 Debug Tools - Console logs, network requests, errors
  • 🔒 Enterprise Ready - Structured logging, error handling, tests

🚀 Quick Start

Installation

# Install from PyPI
pip install qianji

# Install browser dependencies
playwright install chromium

CLI Usage

# Check server status
qianji status

# Start browser (auto-starts server if not running)
qianji start

# Navigate to a page
qianji navigate https://example.com

# Get page snapshot
qianji snapshot

# Click element (e1 is the reference from snapshot)
qianji click e1

# Type text
qianji type e2 "hello world"

# Take screenshot
qianji screenshot output.png --full-page

# Stop browser
qianji stop

HTTP API Usage

# Navigate
curl -X POST http://localhost:18796/api/v1/navigate \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

# Get snapshot
curl -X POST http://localhost:18796/api/v1/snapshot

# Click element
curl -X POST http://localhost:18796/api/v1/act/click \
  -H "Content-Type: application/json" \
  -d '{"ref": "e1"}'

Python API Usage

from qianji import BrowserManager
from qianji.models.config import BrowserConfig

# Create configuration
config = BrowserConfig(
    headless=False,
    no_sandbox=False,
)

# Start browser
manager = BrowserManager(config)
await manager.start()

# Get page
page = await manager.get_or_create_page()

# Navigate
await page.goto("https://example.com")

# Take screenshot
await page.screenshot(path="screenshot.png")

# Stop browser
await manager.stop()

📚 Documentation

🏗️ Project Structure

qianji/
├── qianji/
│   ├── core/           # Core browser management
│   ├── routes/         # API routes
│   ├── models/         # Data models
│   ├── utils/          # Utilities
│   ├── cli.py          # CLI tool
│   ├── server.py       # HTTP server
│   └── mcp.py          # MCP support
├── tests/              # Test suite
├── docs/               # Documentation
├── .github/workflows/  # CI/CD
└── pyproject.toml      # Project config

🧪 Development

Setup

# Clone repository
git clone https://github.com/hexian2001/qianji.git
cd qianji

# Install development dependencies
cd qianji && pip install -e ".[dev]"
playwright install chromium

# Install pre-commit hooks
pre-commit install

Code Quality

# Format code
black qianji tests

# Run linter
ruff check qianji tests

# Type check
mypy qianji

# Run tests
pytest

# Run with coverage
pytest --cov=qianji --cov-report=html

🔧 Configuration

Environment Variables

Variable Description Default
QIANJI_PORT Server port 18796
QIANJI_HEADLESS Run headless true
QIANJI_NO_SANDBOX Disable sandbox false
QIANJI_IDLE_TIMEOUT Idle timeout (s) 3600
QIANJI_MAX_LIFETIME Max lifetime (s) 3600

CLI Options

# Start server with options
qianji-server --port 18796 --headless=false

# CLI with options
qianji --server http://localhost:18796 status
qianji start --headless --window-size 1920,1080
qianji snapshot --format json

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support


Made with ❤️ for the AI community

Metadata

Release files for qianji 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qianji 2.0.1
File Size Uploaded Provenance
qianji-2.0.1.tar.gz 76.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for qianji 2.0.1
File Interpreter ABI Platform
qianji-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 148.3 kB

Release files / qianji-2.0.1.tar.gz

Download URL qianji-2.0.1.tar.gz
Size 76.9 kB
Tags Source
SHA-256 checksum
How to use checksums
26f04900384fbee1fb88bc35fbabf15fced70021150aa498c15de4bd24274e2a
BLAKE2b-256 checksum
How to use checksums
bb86422a2fb16975c84ddc3c9ced9b85da0a75841c2da18fe261d05d781fef33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / qianji-2.0.1-py3-none-any.whl

Download URL qianji-2.0.1-py3-none-any.whl
Size 71.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d8a4e99c2cedfb496e11e7550801e9f554b2d97f4f472d9694bcff3615ebeee
BLAKE2b-256 checksum
How to use checksums
c1ad995b01938453da2fcf1ef66ee53fab4114f3a28325914e4b64224c91d842
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Security for qianji 2.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page