@tpmjs/tools-csv-parse
Parse CSV text into array of objects with automatic header detection
Test @tpmjs/tools-csv-parse (csvParseTool) with AI-powered execution
0/2000 characters
Install this tool and use it with the AI SDK
npm install @tpmjs/tools-csv-parsepnpm add @tpmjs/tools-csv-parseyarn add @tpmjs/tools-csv-parsebun add @tpmjs/tools-csv-parsedeno add npm:@tpmjs/tools-csv-parseimport { csvParseTool } from '@tpmjs/tools-csv-parse';import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { csvParseTool } from '@tpmjs/tools-csv-parse';
const result = await generateText({
model: openai('gpt-4o'),
tools: { csvParseTool },
prompt: 'Your prompt here...',
});
console.log(result.text);(csv: string, hasHeaders?: boolean) => Promise<unknown>Available configuration options
csvstringThe CSV text to parse
hasHeadersbooleanWhether the first row contains headers (default: true)
Schema extracted: 3/1/2026, 4:27:03 AM
Parse CSV text into array of objects using papaparse.
npm install @tpmjs/tools-csv-parse # or pnpm add @tpmjs/tools-csv-parse # or yarn add @tpmjs/tools-csv-parse
import { csvParseTool } from '@tpmjs/tools-csv-parse'; import { generateText } from 'ai'; const result = await generateText({ model: yourModel, tools: { csvParse: csvParseTool, }, prompt: 'Parse this CSV data and tell me the average age: name,age\nAlice,25\nBob,30\nCharlie,35', });
import { csvParseTool } from '@tpmjs/tools-csv-parse'; const result = await csvParseTool.execute({ csv: `name,age,city Alice,25,New York Bob,30,San Francisco Charlie,35,Boston`, hasHeaders: true, }); console.log(result); // { // rows: [ // { name: 'Alice', age: 25, city: 'New York' }, // { name: 'Bob', age: 30, city: 'San Francisco' }, // { name: 'Charlie', age: 35, city: 'Boston' } // ], // headers: ['name', 'age', 'city'], // rowCount: 3, // metadata: { // parsedAt: '2025-01-15T12:00:00.000Z', // hasErrors: false, // errorCount: 0 // } // }
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
csv | string | Yes | - | The CSV text to parse |
hasHeaders | boolean | No | true | Whether the first row contains headers |
{ rows: Record<string, string | number | boolean | null>[]; headers: string[]; rowCount: number; metadata: { parsedAt: string; hasErrors: boolean; errorCount: number; errors?: Array<{ row: number; message: string; }>; }; }
const result = await csvParseTool.execute({ csv: 'product,price,inStock\nLaptop,999.99,true\nMouse,29.99,false', }); // rows: [ // { product: 'Laptop', price: 999.99, inStock: true }, // { product: 'Mouse', price: 29.99, inStock: false } // ]
const result = await csvParseTool.execute({ csv: 'Alice,25,Engineer\nBob,30,Designer', hasHeaders: false, }); // rows: [ // { col_0: 'Alice', col_1: 25, col_2: 'Engineer' }, // { col_0: 'Bob', col_1: 30, col_2: 'Designer' } // ]
const result = await csvParseTool.execute({ csv: 'name,age\nAlice,25\nBob,invalid\nCharlie,35', }); // metadata.hasErrors: true // metadata.errors: [{ row: 1, message: '...' }]
MIT
Downloads/month
6
GitHub Stars
0
Quality Score