Model or dataset
Pythagora-io/pythagora avatar
Pythagora-io/pythagora

Pythagora: Deprecated GPT-4 Unit Test Generator for Node.js

Generate automated tests for your Node.js app via LLMs without developers having to write a single line of code.

1,824 stars115 forksJavaScriptApache-2.0

At a glance

What is it?
Pythagora generated Jest unit tests for Node.js functions by sending code to GPT-4 through a command-line tool. The repository is deprecated: the README header directs users to GPT Pilot, a newer project from the same organization. The npm package and VS Code extension remain available for those already using it.
Who is it for?
Pythagora is not a project to adopt today. The README header states it is deprecated and directs users to GPT Pilot at github.com/Pythagora-io/gpt-pilot.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 106 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Pythagora Did and Why It Is Deprecated

Pythagora was a Node.js tool that accepted function names and file paths as arguments, parsed your code with AST analysis to identify related functions, and sent that code to a server for GPT-4-based test generation. The output was a folder of Jest test files at ./pythagora_tests/.

The first line of the README header now reads: this repo is deprecated, with a link to GPT Pilot. The last push was on 2026-06-16. The tool is not under active development and the organization is working on a different product.

For context, the original scope was narrowly defined: unit tests only, Node.js only, Jest as the output format. The README states explicitly that Pythagora supports only generating Jest tests. Anyone who wanted tests in a different framework would not have found support here.

How Pythagora Generated Tests

The process followed three steps according to the README. First, Pythagora located the target function using AST parsing. Second, it identified all functions called from within that function. Third, it sent both the target function and its dependencies to the Pythagora server, which used GPT-4 to generate test cases.

The Pythagora server is also open-sourced at github.com/Pythagora-io/api, and the prompts used for generation are visible in that repository's prompts folder. This means the test generation logic is not a black box, though the prompts would be those used at the time of deprecation.

AST-based dependency resolution meant Pythagora could follow a function call chain before sending code for generation. If the target function called three helper utilities, all three would be included in the context sent to GPT-4. The README notes this as a design choice to improve test accuracy by giving the model the full picture of what the code does, not just the top-level function signature.

The README also notes that the tool does not store your code on its servers, but the code is sent to GPT and therefore to OpenAI, subject to OpenAI's privacy policy. That is a relevant distinction for teams working with proprietary code.

Installing and Running Pythagora

Install Pythagora as a dev dependency:

bash
npm i pythagora --save-dev

Before running, configure your API key. Use either a Pythagora API key or an OpenAI API key:

bash
npx pythagora --config --pythagora-api-key <API_KEY>

or

bash
npx pythagora --config --openai-api-key <API_KEY>

To generate tests for a single function, run:

bash
npx pythagora --unit-tests --func <FUNCTION_NAME>

To generate tests for all functions in a file:

bash
npx pythagora --unit-tests --path ./path/to/file.js

To run the generated tests:

bash
npx jest ./pythagora_tests/

The README notes that on Windows all commands must be run using Git Bash, not PowerShell or similar. The target function must be exported from its module for Pythagora to locate it.

Expanding Existing Test Suites

Pythagora had a second mode for adding tests to an existing test suite rather than generating from scratch. The --expand-unit-tests flag pointed at an existing test file or folder:

bash
npx pythagora --expand-unit-tests --path <PATH_TO_YOUR_TEST_SUITE>

The README states that PATH_TO_YOUR_TEST_SUITE can be a path to a single test file or to a folder, and all test files inside that folder would be processed and expanded. This mode targeted teams that already had partial coverage and wanted to fill gaps.

The distinction between generating new tests and expanding existing ones is meaningful because the context for expanding includes the tests already written, potentially reducing duplication and targeting uncovered edge cases more precisely.

Where Pythagora Worked and Where It Did Not

The README is specific about where the tool produced the best results: standalone helper functions that take inputs and return outputs without side effects. The example given is the Pythagora source file at ./src/utils/common.js, which contains utility functions. Running Pythagora on that path generated 145 tests, of which only 17 failed, and 11 of those failures identified real bugs in the utility code.

The tool worked less well on functions with heavy external dependencies, database connections, or complex request/response lifecycles. Generating integration tests required a separate workflow documented in ./src/docs/integration/README.md rather than the unit test mode.

The Windows limitation is worth repeating as a concrete constraint: PowerShell is explicitly not supported. Teams on Windows who do not use Git Bash or WSL would not have been able to use the tool.

VS Code Extension and Windows Notes

Alongside the command-line tool, a Visual Studio Code extension was published under PythagoraTechnologies.pythagora-vscode-extension on the VS Code marketplace. The README links to it as an alternative way to use Pythagora for those who prefer a GUI over a terminal.

The extension presumably wrapped the same underlying generation capability. The README does not detail which features of the CLI are available in the extension or whether the extension has been updated since deprecation was announced. Anyone relying on the extension should verify its current state independently.

On Windows, the README is explicit: all commands must be run using Git Bash and not PowerShell or similar tools. This is a hard requirement, not a preference. Teams running Windows-only development environments without Git Bash installed would have needed to set that up before using Pythagora. The README does not explain the technical reason for this restriction, but it is likely related to how the tool handles paths and shell escaping.

License and the Path Forward

Pythagora is licensed under Apache-2.0, which means the generated tests are yours to keep and use without restriction. Running the generator required either an OpenAI API key or a Pythagora API key; the README links to a waitlist for Pythagora API keys, which may no longer be operational since the project is deprecated.

The organization's active project is GPT Pilot at github.com/Pythagora-io/gpt-pilot. GPT Pilot is a different product: a system for building applications with AI rather than a test generator. The README does not provide a migration guide from Pythagora to GPT Pilot.

The npm package version at deprecation was 0.0.79 as shown in package.json. The package name is pythagora and the binary is pythagora. Existing generated test suites continue to work with the Jest test runner without any Pythagora dependency, since the output is plain Jest.

Editorial conclusion

Pythagora is not a project to adopt today. The README header states it is deprecated and directs users to GPT Pilot at github.com/Pythagora-io/gpt-pilot. For anyone already running the tool, the npm package continues to exist and the generated tests are standard Jest output that does not depend on Pythagora remaining operational. New adopters should evaluate GPT Pilot instead, as that is the direction the organization is investing in.

Frequently asked questions

Is there a Pythagora VS Code extension?

Yes. The README links to a Visual Studio Code extension published under PythagoraTechnologies.pythagora-vscode-extension on the VS Code marketplace as an alternative to the command-line tool. The extension's current maintenance status is not documented in the repository.

Where can I find the Pythagora VS Code extension?

The README links to the extension at the VS Code marketplace under the identifier PythagoraTechnologies.pythagora-vscode-extension.

Does Pythagora store my code on its servers?

The README states that Pythagora does not store your code on its servers, but the code is sent to GPT and therefore to OpenAI, subject to OpenAI's privacy policy.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. Project website
  4. Pythagora-io/pythagora on GitHub
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/pythagora-io-pythagora.svg)](https://hysenlabs.com/projects/pythagora-io-pythagora)