Onboarding

Fresh machine to fully working dev environment in one paste

Onboarding

One paste. ~20 minutes mostly silent. ≤3 clicks at the end. A fresh Mac, Windows, or Linux laptop becomes a fully provisioned databayt environment — every tool installed, every repo cloned, every Claude surface working.

This is the single source of truth for joining databayt. It covers every OS, every Claude surface, every dotfile, every external account.

Ran this on a real machine? Hit Report an issue in the footer of any kun.databayt.org page and describe what you saw — what worked, what broke, what to change. It files a GitHub issue (no account-juggling, works mid-install from the browser). See Issue pipeline.


The one-liner

Paste in a terminal. The wizard takes over.

macOS / Linux

curl -fsSL https://kun.databayt.org/install | bash

Windows (PowerShell or cmd.exe)

powershell -ExecutionPolicy Bypass -Command "iwr https://kun.databayt.org/install.ps1 | iex"

The bootstrap URL auto-detects your OS and dispatches to the right installer. No need to pick. Re-run anytime — it auto-resumes from where it left off via a state file.


What You Get

Running the bootstrap line leaves your machine in this state. The deliverables, how to verify each one, how to change what's delivered, and what the baseline is for your profile.

Deliverables

CategoryWhat
Side-toolsgit, Node 24 LTS (Krypton), pnpm, gh CLI, Vercel CLI, Chrome
IDEsWebStorm (+ Claude plugin), VS Code (+ Claude extension)
ClaudeDesktop (Chat / Cowork / Code tabs), Claude Code CLI, IDE integrations, claude.ai/code in browser, Mobile (iOS/Android)
DotfilesSSH key (uploaded to GitHub), ~/.zshrc / ~/.bashrc / $PROFILE with c function, ~/.gitconfig, ~/.ssh/config (Keychain on Mac)
Claude config~/.claude/ — agents, skills, MCP servers, hooks, rules, memory; secrets in ~/.claude/.env
Desktop ↔ CLI parityclaude_desktop_config.json symlinked to ~/.claude/mcp.json so Desktop tabs see the same MCP fleet
ReposThe full databayt org cloned to your chosen directory (default: ~/<repo>) — see Repos table below

Verify what you got

Provisioning lands in seven layers. Run these to confirm each — all green means fully provisioned for your profile:

LayerVerify commandPass looks like
Toolsfor t in git node pnpm gh claude vercel; do command -v $t; donea path prints for each
Authgh auth status && ssh -T git@github.com"Logged in"; "successfully authenticated"
Org gategh api user/memberships/orgs/databayt --jq .stateactive
Codels ~/kun ~/hogwarts ~/codebasedirectories exist (all org repos on every machine)
Per-product envfor d in kun hogwarts souq mkan shifa marketing codebase; do [[ -s ~/$d/.env ]] && echo "$d ✓"; doneeach cloned repo prints
Configbash ~/.claude/scripts/health.sh✅ healthy (0 errors)
Surfacesclaude doctorall checks green
Product (if --hogwarts-dev)cd ~/hogwarts && pnpm dev → open localhost:3000login works (admin@kingfahad.edu / 1234)

bash ~/.claude/scripts/health.sh is the authoritative config gate but only audits ~/.claude/ — pair it with the other rows for a complete check.

Modify what's delivered

Want a different result? Edit the source, then re-run the bootstrap (idempotent):

To change…Edit / flag
Which repos clonePhase 4 repo list in onboarding-{mac,linux}.sh / foreach in onboarding-windows.ps1; or pass --essentials-only for just kun/hogwarts/codebase
Where repos land--repos-dir <path> (Mac/Linux) / -ReposDir <path> (Windows), or the wizard's "where to save repos" prompt
Which tools installPhase 1–2 of the onboarding-* backend for your OS
MCP servers (universal)edit .claude/mcp.json — every machine gets the full fleet
Skills / commands (universal)add/remove files in .claude/commands/ — copied in full to every machine
Agents (universal)add/remove files in .claude/agents/
Which keys a machine holdsscoped by the Gist you hand someone (secrets.sh <GIST_ID>), not by config
hogwarts local dev--hogwarts-dev / -HogwartsDev (default off)

All installer scripts live in ~/kun/.claude/scripts/. Print any backend's flags with no args (e.g. bash ~/kun/.claude/scripts/onboarding-mac.sh).

Every machine is a full autonomous worker

Config is universal — the machine, not the person, is the unit of capability. Every machine gets all agents, all skills, the full MCP fleet, all hooks, and the entire org's repos. Any machine can run any task. Your role is just a label + a secrets-trust tier — it does not limit what your computer can do.

WhatEvery machine
Agents / skills / hooksfull set
MCP serversfull fleet (~18)
Reposall of the databayt org
IDEs (WebStorm + VS Code)installed
hogwarts local devopt-in (--hogwarts-dev / wizard prompt) — not role-gated

What still varies (and why):

  • Secrets — scoped, not by config but by which Gist you're handed. A machine only holds the keys it's trusted with; an MCP server without its key simply doesn't connect (harmless). Full config everywhere, contained blast radius.
  • Linux: Claude Desktop doesn't exist on Linux — surfaces are the CLI, claude.ai/code in the browser, and the IDE plugins. A Linux box with those is complete; don't expect the Chat/Cowork/Code tabs.
  • No Pro/Max: Desktop tabs are unavailable — Claude Code can still bill through an ANTHROPIC_API_KEY, or upgrade to Pro/Max for the Desktop surfaces.

Three paths

Pick the one that fits.

PathTimePro/Max needed?Best for
Wizard (recommended)~5 min active, ~20 min wallNoAnyone — guided UX, auto-resume, deep links to right OS surface
Script~2 min active, ~15-20 min wallNoEngineers who want one bash command, no dialogs
Manual~60 minNoAuditing what gets installed, or learning the parts

The wizard — three acts

The wizard runs in three acts. Most is silent; you click only when a human is unavoidably needed.

Act 1 — Pre-flight (~30 seconds, 4 dialogs)

The wizard asks four things. Everything else is auto-detected, derived after auth, or skipped silently.

QuestionNotes
GitHub account?Yes / No, create one (opens github.com/join) / Skip
Accepted databayt org invite?Yes / Open invite page (github.com/orgs/databayt/invitations) / Skip
Anthropic — company accountCompany creds + OTP from HR. Yes / Open Claude login / Skip — finish later. Non-blocking: install proceeds in parallel while HR sends OTP; sign-in finishes in Act 3 or later via claude/Desktop.
Where to save databayt repos?Home root (~/) / ~/databayt/ / Custom…

All answers persist in a state file. Re-runs skip questions already answered.

What's no longer asked (and why):

RemovedWhat happens instead
Welcome / Start gateInstall starts immediately when you paste.
Role (engineer/business/content/ops)Every machine gets the full config. Backends default to engineer; role is a label only.
Full name + email (for git)Auto-derived after Phase 3 from gh api user — name = .name, email = <login>@users.noreply.github.com (GitHub's privacy-friendly default). Falls back to $(whoami) only if gh is unreachable in quiet mode.
Secrets Gist IDInstall completes without it. Final dialog reminds you to run bash ~/kun/.claude/scripts/secrets.sh <GIST_ID> once HR/admin shares the ID.
Pro/Max subscription?Act 3 Desktop sign-in dialog now gates on whether Claude.app is installed, not on subscription.
Hogwarts local dev?Defaults to off. Opt in with --hogwarts-dev (Mac/Linux) or -HogwartsDev (Windows) on the CLI.

Act 2 — Silent batch (~15-20 minutes, progress notifications)

Eight phases run in the background. You can minimize the terminal and do other work — the wizard fires native OS notifications as each phase advances.

PhaseWhat
1System Foundation — build tools, git, Node 24 LTS, pnpm, gh CLI, Vercel CLI
2Applications — WebStorm, VS Code, Chrome (every machine)
3GitHub — SSH key, gh auth login --web, key uploaded, auto-set git identity from gh api user (name + <login>@users.noreply.github.com), verify databayt org membership + SSH push
4Clone Repositories — the full databayt org (every machine)
5Claude — Code CLI, Desktop (Mac/Win), Desktop MCP symlink, c function in shell
6Kun Engine — setup.sh installs full config; secrets.sh pulls ~/.claude/.env from Gist; vercel-pull.sh populates per-product .env from Vercel team databayt
7Hogwarts — pnpm install, prisma generate + push + seed, build verify (only with --hogwarts-dev)
8Health Check — every tool / repo / config verified

Each phase emits PROGRESS:N/8:label to stderr; wrappers parse this and fire osascript display notification (Mac), zenity --notification (Linux), or NotifyIcon balloon (Windows).

Act 3 — Manual finishing (~3 clicks)

What's left needs a human at the keyboard. Auto-polling OAuth means the only manual clicks are:

StepClick countSkipped when
Sign in to Claude Desktop1 (open + sign in)not Pro/Max, or Linux
Toggle computer-use in Desktop Settings1not Pro/Max, or Linux
Install Claude Code plugin in WebStorm1 (if not auto)— (WebStorm is on every machine)
VS Code Claude extension0auto-installed via code --install-extension
GitHub OAuth0gh auth login --web polls until done
Anthropic CLI OAuth0claude first-run polls until done

The wizard uses deep links so each action button drops you exactly where you need to act:

ActionMacWindowsLinux
Accessibility settingsopen "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"Start-Process ms-settings:easeofaccessgnome-control-center privacy
Claude Desktopopen -a ClaudeStart-Process "Claude.exe"n/a (no Linux app)
WebStormopen -a WebStormStart-Process webstorm64.exewebstorm or snap run webstorm
GitHub device flowopen "https://github.com/login/device"Start-Processxdg-open

Before you sit down — admin checklist

What the inviter needs to grant or hand over before paste-time:

  • GitHub — invite to the databayt org (Phase 3 hard-gates on membership; without it the install can't clone private repos)
  • Anthropic account — Pro/Max sub for the full Desktop + CLI experience
  • Anthropic API key — only if not on Pro/Max (Claude Code can bill via API key)
  • Anthropic mobile app — installed on the teammate's phone, signed in with the same account (native PushNotification dispatch from Claude Code)
  • Secrets Gist ID — handed over out-of-band (Signal, Notes, 1Password). Powers ~/.claude/.env (MCP keys + cross-cutting tokens).
  • Vercel — team invite to databayt (every role, not just engineer) — needed for vercel env pull to populate per-product .env files
  • Neon — project access for any product whose DATABASE_URL_* you'll touch (engineer)
  • Slack — invite to hogwarts-wve9301
  • AWS IAMhogwarts-s3-uploader keys (engineer role only)

If something's missing the wizard skips that step and lists it under "things to do later" at the end.


Which repos you get

Every machine clones the full databayt org to your chosen directory (~/, ~/databayt/, or custom) — any machine can touch any repo:

kun (engine config), hogwarts (multi-tenant LMS), codebase (patterns, agents, blocks), shadcn (UI library), radix (UI primitives), souq (e-commerce), mkan (rentals), shifa (medical), swift-app (iOS/Swift), distributed-computer (infra), marketing (landing pages).

When you pick a custom directory, the wizard symlinks ~/kun, ~/hogwarts, etc. back to it so all existing tooling that hard-codes ~/kun keeps working.

To clone only the essentials (kun, hogwarts, codebase): pass --essentials-only (Mac/Linux) or -EssentialsOnly (Windows).


The seven Claude surfaces

After install you have seven Claude surfaces, each with a sweet spot:

SurfaceWhen to use
Desktop ChatQuick question, no tools. Fastest reply.
Desktop CoworkPlan, research, strategize. Cloud agents — runs while you do other things.
Desktop CodeDrive your own machine (install apps, fill forms, screenshots). Local computer-use.
Claude Code CLI (claude / c)Build, deploy, fix code in terminal. Full kun config — agents, MCP, hooks, memory.
VS Code extensionInline AI in your editor. Cmd+Shift+P → "Claude".
WebStorm pluginInline AI in WebStorm. Cmd+Esc opens panel.
claude.ai/codeMobile, web, or shared link. Same projects as the CLI, no install needed.

Cowork and Claude Code share ~/.claude/ — same brain, two modes. Handoff happens via ~/.claude/bridge.md and GitHub Issues. See Cowork ↔ Code bridge.

Claude Desktop's three tabs share the same MCP fleet as the CLI because the wizard symlinks claude_desktop_config.json to ~/.claude/mcp.json.


Mobile (iOS + Android)

After Claude Desktop is signed in, install the Claude mobile app and sign in with the same Anthropic account — your projects, conversations, and Cowork sessions are available everywhere.

Mobile is read-friendly for reviewing Cowork output on the go. For driving anything (typing prompts, kicking off agents), the desktop surfaces are still best.


WebStorm Settings Sync

To share team-standardized editor settings (code style, keymaps, inspection profiles, file templates):

  1. Open WebStorm → top-right account icon → Sign in to your JetBrains Account
  2. Sign in (your personal JetBrains account, or use the team account if you have one)
  3. Settings → Backup and SyncEnable Settings Sync → choose what to sync

Your settings then follow you to any machine where you sign in to the same JetBrains account. The team uses this for consistent code style across reviews — no need to re-configure per machine.

Recommended sync scope: Code style, Inspection profiles, Live templates, Plugins, Keymaps. Skip system settings (per-machine).


Remote control & async — native Anthropic surfaces

No Tailscale, no Apple Notes. The mobile app + claude.ai/code + computer-use give you the same primitives natively — no extra services to install, no tokens to manage, same Anthropic account you already signed in with.

NeedNative primitiveWhere
Push when a Code task finishesPushNotification tool from inside Claude Code → Anthropic mobile appiOS / Android Claude app
Drive your dev box from your phoneclaude.ai/code in mobile browser — same projects, same Cowork sessions as desktop CLIclaude.ai/code
Resume Code from a different machineCowork ↔ Code bridge (~/.claude/bridge.md) + GitHub Issuesdesktop + mobile
Browser-driven automationComputer-use beta (Desktop Code tab on Pro/Max)Claude Desktop
Team async updatesGitHub Issues (always) · Slack MCP (/slack send …) — both pre-configuredrepo + workspace hogwarts-wve9301

Sign in to the mobile app with the same Anthropic account as Desktop/CLI — your projects, Cowork sessions, and ~/.claude/bridge.md handoffs follow you everywhere.


Script path (engineer)

If you'd rather skip the wizard and run the silent backend directly:

# Mac
git clone https://github.com/databayt/kun.git ~/kun && \
  bash ~/kun/.claude/scripts/onboarding-mac.sh engineer <GIST_ID>
 
# Linux
git clone https://github.com/databayt/kun.git ~/kun && \
  bash ~/kun/.claude/scripts/onboarding-linux.sh engineer <GIST_ID>
 
# Windows (PowerShell)
git clone https://github.com/databayt/kun.git $env:USERPROFILE\kun
& $env:USERPROFILE\kun\.claude\scripts\onboarding-windows.ps1 -Role engineer -GistId <GIST_ID>

Useful backend flags (Mac + Linux):

FlagPurpose
--quietSkip terminal prompts (wrapper/CI use)
--name <name> / --email <email>Pre-supply git identity
--repos-dir <path>Where to save databayt repos (default: $HOME)
--essentials-onlySkip optional org repos (just kun/hogwarts/codebase)
--hogwarts-devSet up hogwarts local dev (pnpm + DB seed + build)

PowerShell equivalents: -Quiet, -GitName, -GitEmail, -ReposDir, -EssentialsOnly, -HogwartsDev.

Re-run anytime; idempotent.


Path B — Script-driven (engineer-friendly)

For learning what the wizard does, or if both other paths fail. Pick your OS.

macOS

# Side-tools
brew install git node pnpm gh
brew install --cask google-chrome webstorm visual-studio-code claude
 
# Claude Code CLI
curl -fsSL https://claude.ai/install.sh | sh
 
# Shell helpers
cat >> ~/.zshrc <<'EOF'
# Claude Code
function c  { claude --dangerously-skip-permissions "$@"; }
function cc { claude "$@"; }
export PATH="$HOME/.local/bin:$PATH"
[ -f "$HOME/.claude/.env" ] && set -a && . "$HOME/.claude/.env" && set +a
EOF
. ~/.zshrc
 
# GitHub auth + SSH
ssh-keygen -t ed25519 -C "you@databayt"
gh auth login -p ssh -w
gh ssh-key add ~/.ssh/id_ed25519.pub --title "databayt-$(hostname -s)"
 
# Repos
git clone git@github.com:databayt/kun.git ~/kun
git clone git@github.com:databayt/hogwarts.git ~/hogwarts
git clone git@github.com:databayt/codebase.git ~/codebase
 
# Kun config + secrets
cd ~/kun && bash .claude/scripts/setup.sh engineer
bash ~/kun/.claude/scripts/secrets.sh <GIST_ID>
 
# Desktop MCP parity
ln -sf ~/.claude/mcp.json "$HOME/Library/Application Support/Claude/claude_desktop_config.json"
 
# Verify
claude doctor
bash ~/.claude/scripts/health.sh

Linux (Debian/Ubuntu shown — adapt for your distro)

# Side-tools
sudo apt update && sudo apt install -y git curl build-essential ca-certificates
 
# Node 24 LTS via nvm
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
export NVM_DIR="$HOME/.nvm"; . "$NVM_DIR/nvm.sh"
nvm install --lts && nvm use --lts
npm install -g pnpm
 
# GitHub CLI (Debian/Ubuntu)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list
sudo apt update && sudo apt install -y gh
 
# IDEs (snap)
sudo snap install code --classic
sudo snap install webstorm --classic
 
# Claude Code CLI (Claude Desktop NOT available on Linux)
curl -fsSL https://claude.ai/install.sh | sh
 
# Shell helpers
cat >> ~/.bashrc <<'EOF'
# Claude Code
function c  { claude --dangerously-skip-permissions "$@"; }
function cc { claude "$@"; }
export PATH="$HOME/.local/bin:$PATH"
[ -f "$HOME/.claude/.env" ] && set -a && . "$HOME/.claude/.env" && set +a
EOF
. ~/.bashrc
 
# GitHub auth + SSH
ssh-keygen -t ed25519 -C "you@databayt"
gh auth login -p ssh -w
gh ssh-key add ~/.ssh/id_ed25519.pub --title "databayt-$(hostname -s)"
 
# Repos
git clone git@github.com:databayt/kun.git ~/kun
git clone git@github.com:databayt/hogwarts.git ~/hogwarts
git clone git@github.com:databayt/codebase.git ~/codebase
 
# Kun config + secrets
cd ~/kun && bash .claude/scripts/setup.sh engineer
bash ~/kun/.claude/scripts/secrets.sh <GIST_ID>
 
# Verify (no Claude Desktop on Linux — CLI + browser + IDE plugins)
claude doctor
bash ~/.claude/scripts/health.sh

Windows (PowerShell)

# Side-tools
winget install Git.Git OpenJS.NodeJS.LTS GitHub.cli Microsoft.PowerShell Google.Chrome
winget install JetBrains.WebStorm Microsoft.VisualStudioCode
npm install -g pnpm
 
# Claude Code CLI (official)
winget install Anthropic.ClaudeCode
claude    # browser sign-in
 
# Shell helpers — append to $PROFILE
@'
 
# Claude Code
function c  { claude --dangerously-skip-permissions $args }
function cc { claude $args }
if (Test-Path "$env:USERPROFILE\.claude\.env") {
    Get-Content "$env:USERPROFILE\.claude\.env" | ForEach-Object {
        if ($_ -and -not $_.StartsWith("#")) {
            $parts = $_ -split "=", 2
            if ($parts.Length -eq 2) {
                [Environment]::SetEnvironmentVariable($parts[0], $parts[1], "Process")
            }
        }
    }
}
$env:Path = "$env:USERPROFILE\.claude\bin;" + $env:Path
'@ | Add-Content $PROFILE
. $PROFILE
 
# GitHub auth + SSH
ssh-keygen -t ed25519 -C "you@databayt"
gh auth login -p ssh -w
gh ssh-key add "$env:USERPROFILE\.ssh\id_ed25519.pub" --title "databayt-$env:COMPUTERNAME"
 
# Repos
git clone git@github.com:databayt/kun.git $env:USERPROFILE\kun
git clone git@github.com:databayt/hogwarts.git $env:USERPROFILE\hogwarts
git clone git@github.com:databayt/codebase.git $env:USERPROFILE\codebase
 
# Kun config + secrets
cd $env:USERPROFILE\kun; & .\.claude\scripts\setup.ps1 -Role engineer
& $env:USERPROFILE\kun\.claude\scripts\secrets.ps1 -GistId <GIST_ID>
 
# Desktop MCP parity (needs admin or Developer Mode for the symlink; falls back to copy)
New-Item -ItemType SymbolicLink -Path "$env:APPDATA\Claude\claude_desktop_config.json" -Target "$env:USERPROFILE\.claude\mcp.json" -Force
 
# Verify
claude doctor
& $env:USERPROFILE\.claude\scripts\health.ps1

For hogwarts, your team contact shares the .env out-of-band — there is no .env.example.


Verify everything

# Kun config (cross-platform, ~5 sec)
bash ~/.claude/scripts/health.sh         # Mac/Linux
& $env:USERPROFILE\.claude\scripts\health.ps1     # Windows
 
# Claude CLI
claude doctor
 
# Hogwarts (engineer)
cd ~/hogwarts && pnpm dev
# Open http://localhost:3000 — login: admin@kingfahad.edu / 1234

health.sh --report posts your config status to a shared GitHub issue (databayt/kun, label config-health) so the team can see drift across machines.


Daily entry points

ActionHow
Open Claude in WebStormCmd+Esc (Mac) · Ctrl+Esc or Alt+Shift+C (Windows/Linux)
Open Claude in VS CodeCmd+Shift+PClaude: Chat
Start Claude in any terminalc
Synthesize company statusc "/captain"
Capture an ideac "/idea <description>"
Run the full feature pipelinec "/feature <name> [product]"
Open a GitHub issuec "/issue"
Verify a production deployc "/watch"
Mobile / browserhttps://claude.ai/code

Full keyword list: keywords.


Auto-resume

The wizard persists every choice to a state file so re-runs skip what's done:

OSState file path
macOS~/Library/Application Support/Databayt/installer-state.json
Linux${XDG_CONFIG_HOME:-~/.config}/databayt/installer-state.json
Windows%APPDATA%\Databayt\installer-state.json

To reset and start fresh: delete the state file, then re-run the bootstrap.


Troubleshooting

SymptomFix
"command not found: c"Restart shell or source ~/.zshrc (Mac/Linux), . $PROFILE (Windows)
claude doctor redRe-run claude to re-auth; check ~/.claude/settings.json exists
Hogwarts won't buildConfirm .env is present; re-run secrets.sh <GIST_ID>
Claude Desktop tabs missing MCP serversCheck claude_desktop_config.json is a symlink to ~/.claude/mcp.json; if not, fix manually
GitHub clone fails on private reposRun gh auth login -p ssh -w again, confirm the SSH key is on your GitHub account
Wizard dialogs not appearing on LinuxInstall zenity (sudo apt install zenity) or pass --no-gui for terminal mode
Windows: "running scripts is disabled"Bootstrap uses Set-ExecutionPolicy Bypass -Scope Process automatically; for direct invocations: powershell -ExecutionPolicy Bypass -File <script>
Windows: 'iwr' is not recognized as an internal or external commandYou pasted into cmd.exe. Use the universal form: `powershell -ExecutionPolicy Bypass -Command "iwr https://kun.databayt.org/install.ps1

For anything else, file an issue at https://github.com/databayt/kun/issues.


Where to go next

This page is the front door. Once your machine is provisioned, branch out from here:

Set up & verify

  • Claude Code — CLI install detail + config
  • MCP — the server fleet + /mcp-doctor browser recovery
  • Secrets — Gist-based provisioning (which keys your machine holds)
  • Self-hosting — tmux / Docker (optional, server use)

Daily use

  • Keywords — the full vocabulary, one word → a workflow
  • Captain — decisions, delegation, the weekly rhythm
  • Cowork ↔ Code — same brain, two modes

Understand the engine

Contribute

External