mcpField
S
start-from-scratch

start-from-scratch

github.com/tambo-ai開発11.2k83 回インストール3 週間前に更新
リポジトリ

start-from-scratch について

Tambo の新規プロジェクト作成を案内するスキルで、Next.js、Vite などに対応したセットアップ手順を提供します。フレームワークやスタイル、TypeScript の選択から、初期化、最初のコンポーネントやチャット UI の追加まで支援します。

主な機能

  1. 01フレームワークとスタイルの選択を案内
  2. 02Next.js と Vite のセットアップ手順
  3. 03TypeScript と JavaScript に対応
  4. 04Tambo の依存関係とスキーマを設定
  5. 05最初のコンポーネントとチャット UI の設定を案内

活用シーン

  1. 01新しい Tambo プロジェクトの開始
  2. 02Next.js と Vite の選択
  3. 03Tailwind を使わない最小構成の Vite アプリ作成
  4. 04新規アプリへのチャット UI の追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tambo-ai/tambo --skill start-from-scratch

インストール後、Claude Code で/start-from-scratchを入力して読み込まれたか確認します。

詳細

ゼロから始める

推奨テクノロジーを使って新しい Tambo プロジェクトを作成できるよう、ユーザーを案内します。

クイックスタート(推奨スタック)

npx tambo create-app my-app --template=standard
cd my-app
npm run dev

これにより、生成 UI に対応した Next.js + Tailwind + TypeScript + Zod プロジェクトが作成されます。

ガイド付きフロー

ユーザーが新しく始めたい場合は、希望を尋ねます。

質問 1:フレームワーク
What framework would you like to use?

1. Next.js (Recommended) - Full-stack React with App Router
2. Vite - Fast, lightweight React setup
3. Other - I'll adapt to your choice

推奨する理由:

  • Next.js:本番アプリに最適で、API ルートが組み込まれており、開発者体験にも優れています
  • Vite:SPA に最適で、開発サーバーが高速で、セットアップも簡単です
質問 2:スタイリング
How would you like to style your app?

1. Tailwind CSS (Recommended) - Utility-first, works great with Tambo components
2. Plain CSS/CSS Modules - No framework, full control
3. Other (styled-components, Emotion, etc.)

推奨する理由:

  • Tailwind:Tambo CLI のコンポーネントはデフォルトで Tailwind を使用します
  • プレーン CSS:問題なく使えますが、Tambo コンポーネントは手動でスタイリングする必要があります
質問 3:TypeScript
Use TypeScript?

1. Yes (Recommended) - Type safety, better IDE support
2. No - Plain JavaScript

推奨する理由:

  • TypeScript:Tambo の Zod スキーマにより、優れた型推論が得られます

テクノロジースタック

推奨スタック(デフォルト)
Next.js 14+ (App Router)
├── TypeScript
├── Tailwind CSS
├── Zod (for schemas)
└── @tambo-ai/react
npx tambo create-app my-app --template=standard
Vite スタック
Vite + React
├── TypeScript
├── Tailwind CSS
├── Zod
└── @tambo-ai/react
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install
npm install @tambo-ai/react zod
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
npx tambo init --api-key=sk_...
最小スタック
Vite + React
├── TypeScript
├── Plain CSS
├── Zod
└── @tambo-ai/react
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install @tambo-ai/react zod
npx tambo init --api-key=sk_...

スタック別のセットアップ手順

Next.js(推奨)
# 1. Create app
npx tambo create-app my-app --template=standard
cd my-app

# 2. Initialize with API key
npx tambo init --api-key=sk_...

# 3. Start development
npm run dev
Vite + Tailwind
# 1. Create Vite app
npm create vite@latest my-app -- --template react-ts
cd my-app

# 2. Install dependencies
npm install @tambo-ai/react zod
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

# 3. Configure Tailwind (tailwind.config.js)
# content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"]

# 4. Add Tailwind directives to src/index.css
# @tailwind base; @tailwind components; @tailwind utilities;

# 5. Initialize Tambo (sets up .env.local automatically)
npx tambo init --api-key=sk_...

# 6. Start development
npm run dev
Vite 最小構成(Tailwind なし)
# 1. Create Vite app
npm create vite@latest my-app -- --template react-ts
cd my-app

# 2. Install dependencies
npm install @tambo-ai/react zod

# 3. Initialize Tambo (sets up .env.local automatically)
npx tambo init --api-key=sk_...

# 4. Start development
npm run dev

プロジェクト構成

セットアップ後、次の構成を作成します。

my-app/
├── src/
│   ├── components/
│   │   └── tambo/           # Tambo UI components (from CLI)
│   ├── lib/
│   │   └── tambo.ts         # Component registry
│   ├── App.tsx              # Main app with TamboProvider
│   └── main.tsx             # Entry point
├── .env.local               # API key
└── package.json

最初のコンポーネント

プロジェクトのセットアップ後、最初のコンポーネントの作成を案内します。

// src/components/Greeting.tsx
import { z } from "zod";

export const GreetingSchema = z.object({
  name: z.string().describe("Person's name"),
  mood: z.enum(["happy", "excited", "friendly"]).optional(),
});

type GreetingProps = z.infer<typeof GreetingSchema>;

export function Greeting({ name, mood = "friendly" }: GreetingProps) {
  const emojis = { happy: "😊", excited: "🎉", friendly: "👋" };
  return (
    <div className="p-4 bg-blue-100 rounded-lg">
      <p className="text-lg">
        Hello, {name}! {emojis[mood]}
      </p>
    </div>
  );
}
// src/lib/tambo.ts
import { TamboComponent } from "@tambo-ai/react";
import { Greeting, GreetingSchema } from "@/components/Greeting";

export const components: TamboComponent[] = [
  {
    name: "Greeting",
    component: Greeting,
    description:
      "Greets a person by name. Use when user wants to say hello or greet someone.",
    propsSchema: GreetingSchema,
  },
];

チャット UI の追加

npx tambo add message-thread-full --yes

次に、アプリで使用します。

import { MessageThreadFull } from "@/components/tambo/message-thread-full";

function App() {
  return (
    <div className="h-screen">
      <MessageThreadFull />
    </div>
  );
}

対応テクノロジー

テクノロジーサポートレベル備考
Next.js 14+完全推奨。App Router を優先
Vite完全SPA に最適
Create React App部分的動作しますが、CRA は非推奨です
Remix部分的クライアントコンポーネントで動作
TypeScript完全強く推奨
JavaScript完全動作しますが、型安全性は低くなります
Tailwind CSS完全CLI コンポーネントのデフォルト
プレーン CSS完全コンポーネントのスタイリングを独自に行う必要があります
CSS Modules完全対応しています
Zod必須すべてのスキーマで使用

コメント