Monorepo for Channel App SDKs.
If this is your first Channel app, start with the Quickstart before reading package references. Continue in this order when you need to customize or ship the app:
- Build and run the first app: Korean, English, or Japanese
- Learn Function, Extension, WAM, and authentication boundaries: Korean, English, or Japanese
- Design, secure, deploy, and operate the app: Korean, English, or Japanese
- Define typed app Functions: Korean, English, or Japanese
- Choose an Extension family and follow its recipe: Korean, English, or Japanese
- Use the language-specific API reference: TypeScript architecture and TypeScript references, or Go reference
- Keep a complete implementation open while coding: TypeScript tutorial or Go tutorial
The Quickstart ends with this same reading map, so it remains the primary entry point. The guides and public SDK exports define the current contract; the tutorials show it as complete server-and-WAM apps.
proto/: shared SDK contracts.go/: Go SDK module.ts/: existing TypeScript SDK workspace and npm packages.docs/guides: app developer guides in Korean, English, and Japanese.docs/reference: protocol and SDK reference documents.skills/build-channel-app: reusable Codex workflow for creating and reviewing apps.
Existing npm packages keep their public package names and entrypoints.
cd ts
pnpm install
pnpm build
pnpm testThe Go SDK is a separate module under go/ and is released with module tags such
as go/v0.1.0.
cd go
go test ./...make install
make lint
make build
make test
make verifyLanguage-specific targets are also available, such as make build-ts,
make test-go, make lint-go, and make proto-lint.
Before opening a pull request, run the relevant checks locally:
make lint
make build
make testWhen changing protocol definitions or generated schemas, also commit the generated files and run:
make proto-checkTypeScript package releases are managed with Changesets. Add a changeset for any user-visible package change:
cd ts
pnpm changesetDo not edit package versions or changelog release sections by hand. The release workflow creates a release pull request, and packages are published to npm when that pull request is merged.
The Go SDK is released separately from npm packages. Keep the Go module path as
github.com/channel-io/app-sdk/go, and use Go module tags such as
go/v0.1.0 for Go releases.
Because this repository is public, pull requests, commit messages, changelogs, fixtures, screenshots, and generated files must not include private service URLs, credentials, tokens, customer data, private repository names, internal task IDs, or organization-specific UUIDs.
CI enforces this policy with scripts/check-public-content.sh and a secret
scan. Report suspected vulnerabilities privately as described in
SECURITY.md.
Use the guides and references in this repository as the contract, then use these repositories as runnable server-and-WAM examples:
- TypeScript app tutorial — SDK-only NestJS server, typed native proxy, and React WAM hooks
- Go app tutorial — Go SDK server and React WAM; see Go Feature Parity for the remaining native-call gap
- Agent Guide - Best entry point for humans and coding agents
- First app: Korean, English, Japanese
- Korean Concepts, English Concepts, Japanese Concepts
- Extension guides: Korean, English, Japanese
- TypeScript README - TypeScript SDK usage
- TypeScript Auth and Tokens
- TypeScript Extensions
- TypeScript WAM SDK
- TypeScript WAM UI
- TypeScript CLI
- Go SDK Reference
- Go Functions and Schemas
- Go Server and Routing
- Go Auth and Tokens
- Go Extensions
- Go Native Functions
- Go WAM Integration
- Go Feature Parity
- Build Channel App skill
MIT