alaska-ai
v0.1.32
Published
AI bridge CLI for running coding agents from chat platforms
Downloads
3,124
Readme
alaska-ai
alaska-ai is a Node.js CLI package that starts the AI bridge service.
Install
npm install -g alaska-aiUsage
alaska-ai startOn first start, the setup wizard runs and requires a sandbox root directory (projects_root).
All project directories must stay under that root.
start now runs in background by default and writes logs to ~/.alaska-ai/logs/bridge-latest.log.
Managed cloudflared tunnel output is written to ~/.alaska-ai/logs/cloudflared-latest.log.
Background process metadata is stored in ~/.alaska-ai/bridge.pid.json.
Before startup with Codex backend, ensure Codex is authenticated manually:
codex loginalaska-ai start does not launch codex login automatically.
If not logged in, startup exits and asks you to login first.
or run without global install:
npx alaska-ai startAvailable commands:
alaska-ai startstart the bridge in background (default command)alaska-ai start --foregroundstart the bridge in current terminalalaska-ai statusshow bridge background process statusalaska-ai stopstop bridge background processalaska-ai configureopen settings menualaska-ai initrun setup wizardalaska-ai --helpshow help
Preview Networking (Named Tunnel)
Preview/file-sharing URLs use a fixed public domain and a local gateway:
- Public base URL:
https://dev.floatcapital.com(default) - Local gateway:
127.0.0.1:8000(default) - Route prefixes:
/p/{id}/...for preview servers/f/{id}/...for file browser
The bridge manages cloudflared as a child process:
- command:
cloudflared tunnel run my-vps(default tunnel name) - auto-reconnect on unexpected exit (exponential backoff, capped)
- startup fails fast if managed tunnel cannot start
Prerequisites:
- Install
cloudflared - Create/configure your named tunnel (
my-vpsby default) - Ensure Cloudflare ingress routes your hostname to the local gateway
Example config.yml:
tunnel: my-vps
credentials-file: /path/to/credentials.json
ingress:
- hostname: dev.floatcapital.com
service: http://localhost:8000
- service: http_status:404Optional environment variables:
ALASKA_PREVIEW_PUBLIC_URL(default:https://dev.floatcapital.com)ALASKA_PREVIEW_GATEWAY_PORT(default:8000)ALASKA_CLOUDFLARED_TUNNEL_NAME(default:my-vps)ALASKA_PROJECT_ALLOWED_SLACK_USER_IDS(optional Slack user allowlist for project operations; comma or whitespace separated, for exampleU111,U222)GITHUB_OWNER(optional GitHub owner used for authenticated push workflows)GITHUB_TOKEN(optional GitHub token used for authenticated push workflows)
Gmail OAuth Callback (Public Host + Local Listener)
If Google OAuth should redirect to a public hostname (for example, http://gmail.floatcapital.com:8787/oauth/google/callback),
configure the redirect URI and local listener separately:
GOOGLE_OAUTH_REDIRECT_URI=http://gmail.floatcapital.com:8787/oauth/google/callbackGOOGLE_OAUTH_LISTEN_HOST=127.0.0.1GOOGLE_OAUTH_LISTEN_PORT=8787
In Google Cloud Console, add the exact same redirect URI under "Authorized redirect URIs".
For Cloudflare named tunnel ingress, add an extra route that forwards the OAuth hostname to the local listener:
ingress:
- hostname: dev.floatcapital.com
service: http://localhost:8000
- hostname: gmail.floatcapital.com
service: http://localhost:8787
- service: http_status:404Development
npm install
npm run build
node dist/cli.js --help
npm startDatabase setup for fresh deployments:
# Apply base schema first, then sandbox hardening constraints
psql "$SUPABASE_DB_URL" -f supabase/schema.sql
psql "$SUPABASE_DB_URL" -f supabase/init_sandbox.sqlPublish to npm
npm login
npm run prepublishOnly
npm publish --access public