| description | Initialize a new LangChain TypeScript project with recommended config. Use when starting a new LLM-powered app, scaffolding an AI agent project, or setting up LangChain from scratch. |
| args | [project-name] |
| allowed-tools | Bash(uv *), Bash(pip *), Bash(python *), Read, Write, Edit |
| argument-hint | my-agent-project |
| disable-model-invocation | true |
| created | "2026-01-08T00:00:00.000Z" |
| modified | "2026-04-25T00:00:00.000Z" |
| reviewed | "2026-04-25T00:00:00.000Z" |
| name | langchain-init |
/langchain:init
Initialize a new LangChain TypeScript project with optimal configuration for building AI agents.
When to Use This Skill
| Use this skill when... | Use a sibling skill instead when... |
|---|
| Scaffolding a brand-new LangChain TypeScript project from scratch | Adding LangChain to an existing project — use langchain-development |
| Generating boilerplate, dependencies, and starter config | Building stateful graph workflows — use langgraph-agents |
| Setting up the canonical project layout the other skills assume | Building hierarchical orchestrators — use deep-agents |
Context
Detect the environment:
node --version - Node.js version
which bun - Check if Bun is available
Parameters
| Parameter | Description | Default |
|---|
project-name | Name of the project directory | Required |
Execution
1. Create Project Directory
mkdir -p $1 && cd $1
2. Initialize Package
If Bun is available:
bun init -y
Otherwise:
npm init -y
3. Install Dependencies
Core packages:
bun add langchain @langchain/core @langchain/langgraph
bun add @langchain/openai
bun add -d typescript @types/node tsx
4. Create TypeScript Config
Create tsconfig.json:
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"outDir": "dist",
"declaration": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
5. Create Project Structure
mkdir -p src
6. Create Example Agent
Create src/agent.ts:
import { ChatOpenAI } from "@langchain/openai";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
import { tool } from "@langchain/core/tools";
import { z } from "zod";
const greetTool = tool(
async ({ name }) => `Hello, ${name}!`,
{
name: "greet",
description: "Greet someone by name",
schema: z.object({
name: z.string().describe("The name to greet"),
}),
}
);
const model = new ChatOpenAI({
model: "gpt-4o",
temperature: 0,
});
export const agent = createReactAgent({
llm: model,
tools: [greetTool],
});
if (import.meta.url === `file://${process.argv[1]}`) {
const result = await agent.invoke({
messages: [{ role: "user", content: "Say hello to Claude" }],
});
console.log(result.messages[result.messages.length - 1].content);
}
7. Create Environment Template
Create .env.example:
OPENAI_API_KEY=sk-...
8. Update package.json Scripts
Add to package.json:
{
"scripts": {
"dev": "tsx watch src/agent.ts",
"start": "tsx src/agent.ts",
"build": "tsc",
"typecheck": "tsc --noEmit"
}
}
9. Create .gitignore
node_modules/
dist/
.env
*.log
Post-Actions
-
Display success message with next steps:
- Copy
.env.example to .env and add API key
- Run
bun dev or npm run dev to start
- Check LangChain docs for more examples
-
Suggest installing additional model providers if needed:
@langchain/anthropic for Claude
@langchain/google-genai for Gemini