# Helix 0.63.0: First early-access release

> The first early-access release of the Helix CLI and SDK: scaffold a project, run it locally, deploy it with one command, and build with an AI assistant.

- Released: 17 Jul 2026 (2026-07-17)
- Packages: @trayai/helix-cli@0.63.0, @trayai/helix-sdk@0.63.0

## Headline changes

### Added: Scaffold, run, and deploy a project from the CLI

`helix init` writes a complete project: `helix.config.ts`, `functions/` with a sample route, `package.json` and `tsconfig.json`, and MCP registration for Claude Code and Cursor. `helix dev` runs it locally with file-system routing (`functions/{path}.{method}.ts`), hot reload, live config reload, and an optional same-port frontend. `helix deploy` uploads the source, provisions the project on first run, records the new `projectId`, and returns a deployment ID you can inspect with `helix deployment get <id>`.

Docs: https://helix.tray.ai/documentation/getting-started/quickstart/

### Added: An AI context layer in every scaffolded project

`helix init` writes `CLAUDE.md`, five domain skills covering auth, context, debug, frontend, and functions, and Claude Code session hooks, so an assistant generates correct Helix code without being taught the platform first. `helix mcp` runs an MCP server that lets an assistant inspect the project, create functions, discover and wire workspace authentications, edit config, test endpoints, and check deployment status.

Docs: https://helix.tray.ai/documentation/getting-started/building-with-claude/

### Added: Credentials by alias, never in your code

`ctx.http.authed(alias)` calls a third-party API by credential alias and the platform supplies the secret, so the same code runs locally and when deployed and no key is ever committed. Upstream non-2xx comes back as a value rather than a thrown error. Plain `ctx.http` handles unauthenticated calls.

Docs: https://helix.tray.ai/documentation/guides/connected-services/

## Other changes

### Added

- `defineFunction`, the core handler primitive (docs: https://helix.tray.ai/documentation/reference/functions/)
  Merges and validates input from query, body, and path params, validates output, and maps return values to HTTP responses: `null` or `undefined` to 204, a `Response` passes through, anything else is validated and sent as JSON. Thrown errors map to statuses.
- `getContext()` reaches the active context without prop drilling (docs: https://helix.tray.ai/documentation/reference/context/index/)
- Key-value store: `getItem`, `setItem`, `removeItem`, `hasItem` (docs: https://helix.tray.ai/documentation/reference/context/kv/)
- Structured logging with `ctx.log.info`, `warn`, `error`, and `debug` (docs: https://helix.tray.ai/documentation/reference/context/log/)
  `helix dev` prints human-readable logs locally by default.
- `ctx.identity` exposes the requesting user id where available (docs: https://helix.tray.ai/documentation/reference/context/identity/)
- Login, logout, and `helix whoami` (docs: https://helix.tray.ai/documentation/reference/cli/auth/)
  Sign in by reading your Chrome session or pasting a token. It is validated before it is saved and never printed.
- Auth aliases: `helix auth connect`, `auth add`, and `auth list` (docs: https://helix.tray.ai/documentation/reference/cli/auth/)
  `helix auth connect [service]` discovers workspace authentications interactively.
- Workspace and project config from the CLI (docs: https://helix.tray.ai/documentation/reference/configuration/)
  `helix workspace set`, `helix workspace select`, and `helix project set` write the values into `helix.config.ts`.
- Typed config loading with `defineConfig` and `loadConfig()` (docs: https://helix.tray.ai/documentation/reference/configuration/)
  `loadConfig()` returns a typed discriminated union covering the provisioned and unprovisioned cases, with `requireWorkspaceId()` and a coded `WorkspaceIdRequiredError`, plus `createConfigService()` with hot reload for long-lived processes.
- A testing entry point at `@trayai/helix-sdk/testing` (docs: https://helix.tray.ai/documentation/reference/functions/)
  `runWithContext` unit-tests handlers and shared helpers with a mock context that throws on unset fields.

## Maintenance

- Update notices when a newer CLI is published

---

Canonical: https://helix.tray.ai/documentation/releases/0630/
This file: https://helix.tray.ai/documentation/releases/0630.md
The full changelog: https://helix.tray.ai/documentation/releases.md
