TypeScript icon, indicating that this package has built-in type declarations

1.1.11 • Public • Published

📂 GitHub Project CSV Exporter (ProjectV2)

Export GitHub project cards as CSV files. Uses the ProjectV2 API.

npm Version  View project on GitHub  Deploy Status

Buy me a coffee Sponsor

→ Open The GitHub Project Exporter ←


Read the official documentation.


This export tool allows you to export GitHub projects as a CSV.

Projects must exist within the ProjectV2 API. For exporting "classic" GitHub projects (older implementation), you can try using this exporter by Stephen Wu.

Features include:

  • ⬇️ Export all GitHub project cards as a CSV.
    • View your GitHub cards in your spreadsheet software of choice.
  • 🎛️ Filter issues by status, customize fields, and exclude closed issues.
    • Only export cards with the statuses you specify, with options to choose custom fields, or hide closed issues.
  • 🚀 Easy to use
    • Features a simple and easy to use web UI. Configure once. Click once to export.


If this project helped you, please consider buying me a coffee or sponsoring me. Your support is much appreciated!

Buy me a coffee Sponsor

Table of Contents


npm i github-projectv2-csv-exporter


Via Website

Go here: GitHub Project Exporter.

This is a static Storybook site hosted on GitHub Pages.

Via Local Storybook Site

If you'd like, you can run the project locally.

Clone the project
git clone

And navigate to the project:

cd github-projectv2-csv-exporter
Install dependencies
npm install
Start the project
npm start
Open localhost:6006

Once the Storybook server starts, a development server will be running locally.

Open the project here: localhost:6006

Via npm

If you want to fetch the data yourself, you can install this package via npm and use the exported fetch functions.

Note: Your access token must include the following scopes: repo, read:org, read:user, read:project


fetchProjects = async (login: string, isOrg: boolean, token: string): Promise<Projects>

Provide an org or username and the token. The promise will be resolved with a Projects instance.

import { fetchProjects } from 'github-projectv2-csv-exporter';
// ...
fetchProjects('my-org', true, 'abc123mytoken').then((orgProjects) =>
    'Loaded projects:',
      .map((p) => `${p.getTitle()} (number ${p.getProjectNumber()} | ${p.getTotalItemCount()} items)`)
      .join(', '),


fetchProjectItems = async (login: string, isOrg: boolean, projectNumber: number, token: string, progress?: (loaded: number, total: number) => void): Promise<ProjectItem[]>

Provide an org or username, project number, and token. Optionally, you can provide a progress function that will be called periodically with the number of items loaded, and the total expected.

The promise will be resolved with an array of ProjectItem instances.

import { fetchProjectItems } from 'github-projectv2-csv-exporter';
// ...
const projectNumber = loadedProject.getProjectNumber();
fetchProjectItems('my-org', true, projectNumber, 'abc123mytoken', (loaded, total) =>
  console.log(`Progress: ${Math.round((loaded / total) * 100)}%`),
).then((items) => console.log('Loaded', items.length, 'items'));


Type definitions have been included for TypeScript support.

Icon Attribution

Favicon by Twemoji.


Open source software is awesome and so are you. 😎

Feel free to submit a pull request for bugs or additions, and make sure to update tests as appropriate. If you find a mistake in the docs, send a PR! Even the smallest changes help.

For major changes, open an issue first to discuss what you'd like to change.

⭐ Found It Helpful? Star It!

If you found this project helpful, let the community know by giving it a star: 👉⭐



Package Sidebar


npm i github-projectv2-csv-exporter

Weekly Downloads






Unpacked Size

84.6 kB

Total Files


Last publish


  • justinmahar