https://github.com/thesysdev/create-c1-app
https://github.com/thesysdev/create-c1-app
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/thesysdev/create-c1-app
- Owner: thesysdev
- License: mit
- Created: 2025-09-16T11:01:57.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-02-16T16:31:56.000Z (4 months ago)
- Last Synced: 2026-02-16T22:56:48.665Z (4 months ago)
- Language: TypeScript
- Size: 596 KB
- Stars: 5
- Watchers: 0
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Create C1 App
A powerful CLI tool that setups Generative UI examples with C1 by Thesys
## Features
✨ **Interactive Project Setup**
## Quick Start
```bash
# Run the tool
npx create-c1-app
# With project name
npx create-c1-app my-thesys-project
# With project name and options
npx create-c1-app my-thesys-project --template template-c1-component-next --api-key your-api-key
```
## CLI Options
| Option | Alias | Description | Default |
| --------------------- | ----- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------- |
| `[project-name]` | | Name of the project to create (positional argument) | Interactive prompt |
| `--project-name` | `-n` | Name of the project to create (alternative to positional argument) | Interactive prompt |
| `--template` | `-t` | Next.js template to use (`template-c1-component-next` or `template-c1-next`) | Interactive prompt |
| `--api-key` | `-k` | Thesys API key to use for the project | Interactive prompt |
| `--auth` | | Authentication method (`oauth`, `manual`, `skip`) | Prompt in interactive mode; `oauth` when provided |
| `--skip-auth` | | **Deprecated**. Use `--auth skip` instead | `false` |
| `--debug` | `-d` | Enable debug logging | `false` |
| `--non-interactive` | | Run without prompts; fails fast if required options are missing. Auto-enabled in non-TTY shells. | `false` (auto-detected) |
| `--disable-telemetry` | | Disable anonymous telemetry for current session | `false` |
## Usage Examples
### Basic Usage
```bash
# Interactive mode with OAuth authentication (recommended)
npx create-c1-app
# Quick setup with project name as positional argument
npx create-c1-app my-thesys-project
# Quick setup with project name, template, and API key
npx create-c1-app my-thesys-component --template template-c1-component-next --api-key your-api-key-here
# Using flag instead of positional argument
npx create-c1-app --project-name my-thesys-component --template template-c1-component-next --api-key your-api-key-here
# With specific template choice
npx create-c1-app my-project --template template-c1-next --api-key your-api-key-here
# Interactive with API key provided
npx create-c1-app --api-key your-api-key-here
```
### Non-Interactive / CI / Agent Usage
When running in CI pipelines, automated scripts, or AI agent shells (e.g. Cursor, Copilot, Devin), interactive prompts will hang. The CLI supports a fully non-interactive mode:
```bash
# Explicit flag
npx create-c1-app my-project --template template-c1-next --api-key YOUR_API_KEY --non-interactive
# Or just provide all required flags — non-interactive mode is auto-detected
# when stdin is not a TTY (pipes, agents, CI) or when CI env vars are set
npx create-c1-app my-project --template template-c1-next --api-key YOUR_API_KEY
```
**Auto-detection:** The CLI automatically enables non-interactive mode when:
- `stdin` is not a TTY (piped input, background process, agent shell)
**Behavior in non-interactive mode:**
- `--api-key` is **required** (OAuth browser flow is skipped)
- `--project-name` defaults to `my-c1-app` if not provided
- `--template` defaults to `template-c1-next` if not provided
- The CLI will **fail immediately** with a clear error if required options are missing, instead of hanging on a prompt
## Development
### Building from Source
```bash
git clone https://github.com/thesysdev/create-c1-app.git
cd create-c1-app
pnpm install
pnpm run build
pnpm link
```
## Authentication Options
Create C1 App supports flexible authentication methods:
### Option 1: OAuth 2.0 Authentication (Recommended)
The CLI will automatically open your browser and guide you through the OAuth authentication process. This is the default in interactive mode.
```bash
npx create-c1-app
# or explicitly:
npx create-c1-app --auth oauth
```
This method will:
- Open your browser for secure authentication
- Generate an API key automatically after successful login
- Store the API key in your project's `.env` file
If you do not pass an auth option in interactive mode, the CLI will ask you to choose between OAuth, manual API key entry, or skip.
### Option 2: Manual API Key
If you prefer to enter your API key manually:
```bash
npx create-c1-app --auth manual
```
Or provide your existing API key directly via flag:
```bash
npx create-c1-app --api-key your-api-key-here
```
### Option 3: Skip Authentication
To skip authentication and API key generation (useful for testing or CI where you might set the key later):
```bash
npx create-c1-app --auth skip
```
_Note: The `--skip-auth` flag is deprecated but still supported for backward compatibility. Use `--auth skip` going forward._
## Getting Your Thesys API Key (Manual Method)
To get an API key manually:
1. 🌐 Visit: https://console.thesys.dev/keys
2. 🔐 Sign in to your Thesys account
3. 🆕 Click "Create New API Key"
4. 📝 Give your key a descriptive name
5. 📋 Copy the generated API key
💡 **Tip**: Keep your API key secure and never share it publicly!
## Troubleshooting
### Common Issues
**Error: "Project directory already exists"**
```bash
# Choose a different name or remove the existing directory
rm -rf existing-project-name
npx create-c1-app
```
**Error: "Failed to download template"**
```bash
# Check your internet connection and try again
npx create-c1-app
```
**Error: "Failed to install dependencies"**
```bash
# Navigate to your project and install manually
cd your-project-name
npm install
```
### Debug Mode
Enable debug logging for detailed troubleshooting:
```bash
npx create-c1-app --debug
```
Or set the environment variable:
```bash
export CREATE_C1_APP_DEBUG=true
npx create-c1-app
```
## Telemetry
create-c1-app collects anonymous telemetry data to help improve the tool. No personally identifiable information is collected.
### Managing Telemetry
```bash
# Disable for current session
npx create-c1-app --disable-telemetry
# Disable via environment variable
export CREATE_C1_APP_DISABLE_TELEMETRY=true
```
For complete details about what data is collected and how to control it, see [TELEMETRY.md](./TELEMETRY.md).
## License
MIT License - see [LICENSE](LICENSE) file for details.
## Support
- 🐛 [Issues](https://github.com/thesysdev/create-c1-app/issues)
- 💬 [Discussions](https://github.com/thesysdev/create-c1-app/discussions)
---
Made with ❤️ by Thesys