An open-source CLI that lets you build and deploy full-stack applications using Claude Code as your IDE. Write code locally, deploy functions, static sites, and databases — either to a local environment (LocalStack + PostgreSQL) or to the OpenKBS cloud (AWS Lambda, S3, CloudFront, Neon PostgreSQL).
Same code, same commands, two targets.
- Node.js v20+
- Docker
- A LocalStack auth token (free tier works)
git clone https://github.com/open-kbs/openkbs.git
cd openkbs
npm installcp .env.example .envEdit .env and add your LocalStack auth token:
LOCALSTACK_AUTH_TOKEN=your-token-here
docker compose up -dThis starts:
- LocalStack (port 4566) — local AWS services (Lambda, S3, CloudWatch, EventBridge)
- PostgreSQL (port 5432) — local database
npx tsx src/index.ts uiYour browser opens http://localhost:3000 with the development UI.
The screenshot above shows example apps that can be built with OpenKBS. You start with a blank slate — create your first app from the UI.
From the UI:
- Create App — enter a name, scaffolds a new project with React + Vite
- Install Dependencies — installs npm packages
- Start Building — launches Vite dev server with hot reload, opens your app in a new tab
- Deploy Locally — deploys functions and site to LocalStack
Edit your code — the browser updates instantly via hot reload.
When you create an app, it generates:
my-app/
├── src/ # React source code (edit here)
│ ├── index.html
│ ├── main.jsx
│ └── App.jsx
├── build/ # Vite build output (auto-generated, deployed)
├── functions/ # Lambda functions (each folder = one endpoint)
│ └── api/
│ ├── index.mjs # Handler: export const handler = async (event) => { ... }
│ └── package.json
├── openkbs.json # Project config
├── vite.config.js # Vite + API proxy config
└── package.json
openkbs fn create <name> # Scaffold a new function
openkbs fn deploy <name> # Deploy a function
openkbs fn list # List deployed functions
openkbs fn invoke <name> -d '{}' # Test a function
openkbs fn destroy <name> # Delete a function
openkbs fn logs <name> # View function logsopenkbs site deploy # Deploy build/ to S3openkbs storage ls [prefix] # List objects
openkbs storage upload <file> # Upload a file
openkbs storage download <key> # Download a file
openkbs storage rm <keys...> # Delete objectsopenkbs postgres info # Show connection details
openkbs postgres connection # Output connection stringopenkbs deploy # Deploy all services from openkbs.jsonopenkbs ui # Start the local development UI
openkbs ui -p 8080 # Use a custom port
openkbs ui --no-open # Don't auto-open browserThe target field in openkbs.json controls where deployments go:
| Local | Cloud | |
|---|---|---|
| Functions | LocalStack Lambda | AWS Lambda |
| Storage | LocalStack S3 | AWS S3 + CloudFront |
| Database | Docker PostgreSQL | Neon PostgreSQL |
| Target | "target": "local" |
"target": "cloud" |
Apps created from the UI default to "target": "local". To deploy to cloud:
openkbs login
# Change "target" to "cloud" in openkbs.json
openkbs deployLambda functions automatically receive:
| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL connection string |
STORAGE_BUCKET |
S3 bucket name |
OPENKBS_PROJECT_ID |
Project identifier |
To work on the CLI itself:
npm install
npm run dev -- <command> # Run CLI in dev mode
npm run build # Build ESM bundleMIT
