mcpField
L
langchain-init

langchain-init

github.com/laurigatesAgent workflows5951 installsUpdated 1d ago
Repository

About langchain-init

langchain-init scaffolds LangChain TypeScript projects for developers building AI agents. It sets up dependencies, configuration, project structure, and a starter agent.

Key features

  1. 01Initialize a TypeScript project
  2. 02Install LangChain dependencies
  3. 03Generate TypeScript configuration
  4. 04Create a sample agent and tool
  5. 05Set up environment template and scripts

Use cases

  1. 01Starting a new LangChain project
  2. 02Preparing a standard structure for agent development

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/laurigates/claude-plugins --skill langchain-init

After installing, type/langchain-initin Claude Code to confirm it loaded.

Details

From the project README

/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 scratchAdding LangChain to an existing project — use langchain-development
Generating boilerplate, dependencies, and starter configBuilding stateful graph workflows — use langgraph-agents
Setting up the canonical project layout the other skills assumeBuilding hierarchical orchestrators — use deep-agents

Context

Detect the environment:

  • node --version - Node.js version
  • which bun - Check if Bun is available

Parameters

ParameterDescriptionDefault
project-nameName of the project directoryRequired

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:

# Package manager: bun or npm
bun add langchain @langchain/core @langchain/langgraph
bun add @langchain/openai  # Default model provider

# Dev dependencies
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";

// Example tool
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"),
    }),
  }
);

// Create the agent
const model = new ChatOpenAI({
  model: "gpt-4o",
  temperature: 0,
});

export const agent = createReactAgent({
  llm: model,
  tools: [greetTool],
});

// Run if executed directly
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 (default)
OPENAI_API_KEY=sk-...

# Optional: Anthropic
# ANTHROPIC_API_KEY=sk-ant-...

# Optional: LangSmith tracing
# LANGCHAIN_TRACING_V2=true
# LANGCHAIN_API_KEY=ls__...
# LANGCHAIN_PROJECT=my-project
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

  1. 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
  2. Suggest installing additional model providers if needed:

    • @langchain/anthropic for Claude
    • @langchain/google-genai for Gemini

Comments

Markdown supported