Autonomous first-run setup for OpenSIN — zero manual intervention.
When a new user runs OpenSIN for the first time, this onboarding system automatically:
- Installs & configures the A2A-SIN-Passwordmanager with Google Cloud Secrets backend
- Installs OpenSIN Bridge Chrome Extension via CLI sideload
- Registers API accounts on free-tier platforms (NVIDIA NIM, Groq, Hugging Face, etc.)
- Provisions gcloud service account for secrets management
- Seeds initial credentials into the Passwordmanager vault
User runs: opensin init
│
▼
┌─────────────────────────────┐
│ Phase 1: System Bootstrap │
│ ─ gcloud CLI install │
│ ─ Node.js/npm verify │
│ ─ Chrome verify │
│ ─ opencode CLI verify │
└──────────┬──────────────────┘
│
▼
┌─────────────────────────────┐
│ Phase 2: GCP Project Setup │
│ ─ gcloud auth login (CDP) │
│ ─ Create GCP project │
│ ─ Enable Secret Manager API│
│ ─ Create service account │
│ ─ Generate & store SA key │
└──────────┬──────────────────┘
│
▼
┌─────────────────────────────┐
│ Phase 3: Passwordmanager │
│ ─ Build from source │
│ ─ Configure gcloud backend │
│ ─ Verify health check │
│ ─ Symlink CLI (spm) │
└──────────┬──────────────────┘
│
▼
┌─────────────────────────────┐
│ Phase 4: Chrome Extension │
│ ─ Build extension │
│ ─ Sideload via chrome CLI │
│ ─ Verify extension active │
└──────────┬──────────────────┘
│
▼
┌─────────────────────────────┐
│ Phase 5: Platform Accounts │
│ ─ Groq (free vision API) │
│ ─ NVIDIA NIM (free tier) │
│ ─ Hugging Face (spaces) │
│ ─ Store all keys in PM │
└──────────┬──────────────────┘
│
▼
┌─────────────────────────────┐
│ Phase 6: Verification │
│ ─ PM health check │
│ ─ gcloud secrets list │
│ ─ Extension ping │
│ ─ API key validation │
│ ─ Print onboarding report │
└─────────────────────────────┘
git clone https://github.com/OpenSIN-AI/OpenSIN-onboarding.git
cd OpenSIN-onboarding
./scripts/onboard.shOr via OpenSIN CLI:
opensin initOpenSIN-onboarding/
├── scripts/
│ ├── onboard.sh # Main entry point
│ ├── phase1_system_bootstrap.sh # System prerequisites
│ ├── phase2_gcp_setup.sh # GCP project + service account
│ ├── phase3_passwordmanager.sh # PM build + configure
│ ├── phase4_chrome_extension.sh # Extension sideload
│ ├── phase5_platform_accounts.py # Autonomous account registration
│ └── phase6_verification.sh # End-to-end health checks
├── docs/
│ ├── 01-prerequisites.md # What users need before starting
│ ├── 02-passwordmanager-setup.md # Deep dive: PM + GCS architecture
│ ├── 03-chrome-extension.md # Extension installation details
│ ├── 04-platform-accounts.md # Platform registration reference
│ ├── 05-troubleshooting.md # Common issues + fixes
│ └── 06-security-model.md # How secrets are protected
├── config/
│ └── templates/
│ ├── catalog.template.json # PM catalog seed template
│ └── env.template # Environment variable template
├── .well-known/
│ └── agent-card.json # A2A discovery card
└── README.md
| Platform | Free Tier | What OpenSIN Uses It For |
|---|---|---|
| Google Cloud | $300 credit + always-free Secret Manager (6 active versions) | Passwordmanager backend (Google Cloud Secrets) |
| Groq | 14,400 req/day (vision models) | OpenSIN Bridge vision analysis |
| NVIDIA NIM | 1,000 free API calls/month | Specialized AI models (Qwen, Cosmos) |
| Hugging Face | Unlimited free CPU Spaces | A2A agent hosting |
| GitHub | Unlimited public repos | Code hosting, Issues, A2A coordination |
OpenSIN uses the Two-Layer Browser Stack (nodriver + CDP) to:
- Navigate to platform signup page
- Fill registration forms with user-provided email
- Handle email verification via user's mail client
- Extract API keys from dashboard
- Store keys in Passwordmanager (Google Cloud Secrets)
The user only needs to provide:
- Email address (for account registration)
- Google account (for GCP + Chrome profile)
Everything else is fully autonomous.
- All secrets stored in Google Cloud Secret Manager (encrypted at rest with Google-managed keys)
- Service account key stored locally at
~/.config/opencode/auth/google/with600permissions - No secrets ever committed to git (enforced by
.gitignore+ pre-commit hooks) - Secret names follow pattern:
spm-{name}in GCP - Passwordmanager catalog (metadata only, no values) at
~/.config/sin/sin-passwordmanager/catalog.json
| Repository | Purpose |
|---|---|
| OpenSIN-backend | A2A-SIN-Passwordmanager source code |
| OpenSIN-documentation | Full platform docs (docs.opensin.ai) |
| OpenSIN-overview | Organization SSOT registry |
| OpenSIN | Core platform |
| OpenSIN-Code | CLI tool |
Apache 2.0 — see LICENSE