solari-cookbook README

The project's README from github.com/solari-sdk/solari-cookbook. As one markdown file: README.md.

Solari Cookbook

Short, runnable examples for Solari — cloud browsers, sandboxes, and desktops behind one API key.

Every example in this repo is a complete program you can run in under a minute. They are deliberately small: one idea each, no framework, no scaffolding to read past. Copy one into your project and change the parts you care about.

Examples

Cloud browser

Example Language What it shows
browser-quickstart-ts TypeScript Launch a browser, open a page, read it
browser-quickstart-py Python Launch a browser, open a page, read it
browser-stealth-proxy-ts TypeScript Stealth mode + residential proxy egress
browser-profiles-ts TypeScript Log in once, reuse the session forever
browser-login-handoff-ts TypeScript Hand the live session to a human to sign in, then save it
browser-session-recording-py Python Record a session, download the replay
browser-page-assertions-py Python Reject a wrong page even when navigation and screenshots succeed
browser-workers-cdp-ts TypeScript Drive a browser from a Cloudflare Worker, over raw CDP
browser-playwright-runner-ts TypeScript Run your existing Playwright suite on Solari, no local Chromium
eu-consent-evidence-ts TypeScript Pre-consent tracker evidence via raw CDP

Sandbox

Example Language What it shows
sandbox-quickstart-ts TypeScript Run a command, write and read files
sandbox-quickstart-rb Ruby Same, with no SDK and no gems — stdlib only
sandbox-code-interpreter-py Python Stateful Python kernel for agent loops
sandbox-snapshot-fork-py Python Seed a snapshot, fork clones, and verify each restored the exact file digest
sandbox-port-preview-ts TypeScript Expose a server in the VM on a public URL
sandbox-scan-untrusted-code-ts TypeScript Run untrusted code and capture what it did (audit hook)

Multi-product

One key spans all three, so an example can use more than one at once.

Example Language What it shows
form-delivery-check-ts TypeScript Submit a form in a browser, verify the lead landed in a sandbox
security-posture-review-ts TypeScript Browser and sandbox running concurrently on one key

Desktop

Example Language What it shows
desktop-computer-use-py Python Screenshot, click, and type on a Linux GUI

Applications

Bigger programs built on Solari — a CLI or a UI, its own modules, solving a whole problem rather than showing one call. See applications/.

Running an example

Each directory is self-contained.

git clone https://github.com/solari-sdk/solari-cookbook.git
cd solari-cookbook/examples/browser-quickstart-ts

npm install                          # or: pip install -r requirements.txt
export SOLARI_API_KEY=slr_live_...   # grab one at console.getsolari.com
npm start                            # or: python main.py

One slr_live_ key works across browsers, sandboxes, and desktops, and every product bills to the same balance.

Which product do I want?

Gotchas the examples encode

Things that cost you an afternoon if you meet them cold:

Contributing

New examples are welcome. Keep them small, make them run end-to-end against the real API, and put anything surprising in a comment right where it bites.

MIT licensed.

solari-cookbook (solari-sdk/solari-cookbook)

Searching Database…

Что это?Сборник небольших работающих примеров для Solari — сервиса, который даёт облачные браузеры, песочницы и настольные VM под одним API-ключом.
Это библиотека или просто набор примеров скриптов?Это коллекция самостоятельных примеров скриптов — одна идея на файл, — которые предполагается копировать в свой проект, а не импортировать как пакет; каждый пример напрямую вызывает настоящий API Solari.
Как запустить один из примеров?Каждый каталог с примером самодостаточен: откройте нужный (например browser-quickstart-py или sandbox-quickstart-ts) и запустите с API-ключом Solari; один ключ работает и для браузеров, и для песочниц, и для десктопов.
На каких языках написаны примеры и нужен ли API-ключ?Примеры написаны на TypeScript, Python и Ruby (один использует только стандартную библиотеку Ruby, без SDK). Для запуска любого из них нужен API-ключ Solari.
Какие подводные камни, если скопировать эти примеры в свой код?Профиль браузера восстанавливает только cookie, но не localStorage, если не передать storageState в newContext(); команды песочницы не обрабатываются shell, поэтому run('ls -la') ищет буквально бинарник с таким именем; записи сессий загружаются асинхронно, поэтому эндпоинт воспроизведения отдаёт 404 до ~30 с после остановки; а TypeScript SDK не может работать в edge-средах вроде Cloudflare Workers, так как содержит форк Playwright, которому нужен Node.
Что выбрать: облачный браузер, песочницу или настольный продукт?Облачный браузер — для всего, что вы делали бы с Playwright или Puppeteer на веб-странице, плюс скрытность и управляемые прокси; песочница — когда нужно запустить код вроде Python от LLM или недоверенной сборки в microVM, загружающейся из снапшота примерно за секунду; десктоп — когда нужен кликабельный экран, например для computer-use агентов или GUI-приложений.
Для чего папка 'applications'?Там лежат более крупные программы на Solari — полноценные CLI или UI со своими модулями, решающие целую задачу, в отличие от примеров «одна идея» в основных папках.
Можно ли прогонять существующий набор тестов Playwright через Solari?Да — browser-playwright-runner-ts показывает, как подключить свой набор тестов к CDP-эндпоинту сессии Solari вместо локального Chromium, что заодно обходит ограничение Playwright на версию протокола.
Что показывает пример sandbox snapshot/fork?sandbox-snapshot-fork-py один раз создаёт снапшот, порождает из него несколько клонов и проверяет, что каждый клон восстановил точно такой же дайджест файлов — полезно для быстрых воспроизводимых сред агентов.
Зависает ли скрипт на TypeScript при закрытии браузера?Начиная с @solarisdk/browser 0.1.3 — теперь browser.close() сам завершается чисто; до этой версии приходилось ещё вызывать solari.close(), иначе скрипт зависал на открытом loopback-слушателе.
Creator
solari-sdk
Size
0.5 MB
Stars
191
Updated
CommitSep 28
Age
2mo
Commits · 90 Days