CC Safety Net
A coding agent CLI safety layer that blocks destructive git and filesystem commands and secret file access before execution.
Add sign-in, users, and roles to your B2B SaaS with Canopy. Start with simple roles, then grow into teams, departments, and inherited permissions.
SecurityTypeScript · JavaScriptGitHub @canopy-identityOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Official Canopy SDKs for JavaScript and TypeScript — hierarchical identity and access management for B2B SaaS. `@canopy-io/node` and framework adapters.
Taken from the repository README
Loading the full README.
Read the full README ↗The official JavaScript and TypeScript client libraries for Canopy — hierarchical identity and access management for B2B SaaS.
This repository is the whole family. Each package is published independently to npm under the @canopy-io scope, and each has its own README describing what it does.
| Package | What it is |
|---|---|
@canopy-io/node | The server client. Calls the API, verifies access tokens, and has zero runtime dependencies. |
@canopy-io/nestjs | The NestJS integration. Wraps the client in a module and turns an authorization check into a decorator on the route. |
@canopy-io/browser | The browser client. Signs a single-page app in through Canopy's hosted login as a public OAuth client, with PKCE and tokens kept in memory. |
@canopy-io/nestjs depends on @canopy-io/node and installs it for you. A NestJS application needs only the integration package; anything else needs the client.
Everything here is TypeScript and ships both ESM and CommonJS. The server packages require Node 18 or later; @canopy-io/browser runs in any browser with the Web Crypto API.
Every request and response type is generated from the same OpenAPI document that renders Canopy's API reference, and CI fails when the committed types no longer match it — so a package cannot silently describe an API that has moved on.
These are the only official SDKs. That specification is published so a generator can produce a client for Python, Go, or anything else, which serves those languages better than a partly-maintained SDK would.
The Canopy agent skill teaches an assistant to integrate Canopy correctly: which sign-in shape to choose, verifying tokens, authorizing locally, failing closed, and the mistakes to avoid. Every code block in it is compiled against these packages in CI.
In Claude Code:
/plugin marketplace add canopy-identity/canopy-javascript
/plugin install canopy@canopy-javascript
Other assistants can read the same Markdown files directly, starting from SKILL.md. AGENTS.md points there too.
See CONTRIBUTING.md for building, testing, and releasing.
MIT © Canopy Identity Inc.