5-Minute Quickstart

macOS

Get up and running with Seenn CLI. Perfect for AI-assisted development.

Using Claude Code, Cursor, or Copilot?

This guide is designed for copy-paste into your terminal. All commands are ready to use.

1 Install & Login ~30 seconds

Install the Seenn CLI and authenticate with your Google account:

Terminal
$ brew tap seenn-io/tap && brew install seenn
$ seenn login
Logged in as you@email.com
Secret Key: sk_live_xxxxx ← Save this!
Alternative: Install via npm
npm install -g @seenn/cli
seenn login
Optional Configure iOS Push Notifications (APNs)

If you want to send push notifications to iOS devices, configure APNs now.

Get your .p8 key from Apple Developer → Keys → Create a new key with "Apple Push Notifications service (APNs)" enabled. Download the .p8 file (only available once).

$ seenn setup ios
? Path to .p8 file: ./AuthKey_ABC123.p8
? Team ID: ABC123XYZ0
? Key ID: ABC1234567
? Bundle ID: com.myapp.example
APNs configuration saved!

Or use flags: seenn setup ios --p8 ./Key.p8 --team-id X --key-id Y --bundle-id Z

2 Add to Your Backend ~2 minutes

Install the Node.js SDK and start tracking jobs:

npm install @seenn/node
// jobs.ts
import { SeennClient } from '@seenn/node';

const seenn = new SeennClient({
  apiKey: process.env.SEENN_SECRET_KEY, // sk_live_...
});

// Start a job when user triggers async task
const job = await seenn.jobs.start({
  userId: 'user_123',
  jobType: 'video-generation',
  title: 'Creating your video...',
});

// Update progress as processing continues
await job.setProgress(50, { message: 'Generating frames...' });

// Complete with result
await job.complete({
  result: { url: 'https://cdn.example.com/video.mp4' }
});

3 Add to Your App ~2 minutes

Choose your mobile framework and subscribe to real-time updates:

npm install @seenn/react-native
import { SeennProvider, useJob } from '@seenn/react-native';

// Wrap your app
function App() {
  return (
    <SeennProvider
      apiKey="pk_live_..."  // Public key
      userId="user_123"
    >
      <YourApp />
    </SeennProvider>
  );
}

// Subscribe to job updates
function JobProgress({ jobId }) {
  const { job, isLoading } = useJob(jobId);

  if (isLoading) return <Spinner />;

  return (
    <View>
      <Text>{job.progress}%</Text>
      <Text>{job.message}</Text>
    </View>
  );
}

4 View Your Keys Anytime

Access your API keys from the terminal:

Terminal
$ seenn whoami
Email: you@email.com
App: My App (app_01HQ...)
Public Key: pk_live_abc123...
Secret Key: sk_live_••••••••
$ seenn keys --reveal # Show full secret key

For AI Assistants

Add your keys to .env (gitignored), then add this to CLAUDE.md or .cursorrules:

# .env (gitignored - DO NOT COMMIT)
SEENN_SECRET_KEY=sk_live_...
SEENN_PUBLIC_KEY=pk_live_...
## Seenn Integration (Job Progress Tracking)

### Keys
- `SEENN_SECRET_KEY` - Backend only (.env)
- `SEENN_PUBLIC_KEY` - Mobile app (.env)
- Get keys: `seenn whoami` or `seenn keys --reveal`

### Backend (@seenn/node)
```typescript
const seenn = new SeennClient({ apiKey: process.env.SEENN_SECRET_KEY });
const job = await seenn.jobs.start({ userId, title });
await job.setProgress(50, { message: '...' });
await job.complete({ result: { url } });
```

### Docs
https://docs.seenn.io
You're all set!

Next: Learn about Core Concepts or explore iOS Live Activity integration.