- Notifications
You must be signed in to change notification settings - Fork8
Software architecture tooling for the AI age
License
nanoapi-io/napi
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
napi is a versatile tool built by NanoAPI and designed to automaticallyprovide insights into the architectural complexity of your software, whileallowing for the novel extraction of functionality from codebases into smallerunits. With both a powerful CLI and an intuitive UI,napi is compatible withall major CI/CD platforms, allowing seamless integration into your developmentand deployment pipelines.
Historically, tools like this have only been built by large consulting firms orcontractors and kept behind the paywalls of consulting fees.napi aims to makethese tools accessible to developers of all skill levels, without the cost. Ourvision is to help you gain deeper insights into system architecture-levelconcerns before they become hundred-million-dollar problems. The added benefit?No more black-box tools running on your code and the confidence of a 100%determinstic tool.
- 🚨 Audit: Pinpoint areas of your code that need refactoring or cleanup.
- 📝 Refactor: Extract functionality using the UI to improve architecture.
- 🏗️ Build: Generate modular microservices ready for deployment.
- ⚙️ Integrate: Use CLI commands compatible with all CI/CD workflows forautomation.
- 🔍 Architecture: Get a live view of all your software and theirinteractions; scoped to a specific moment in time.
- Application Library:
napiis not just a CLI tool; it is a comprehensiveapplication library of all projects and their interactions within yourorganization. - Enables discovery into legacy systems: indentify problematic code andpotential improvements early.
- Modular Monoliths: Simplifies the process of extracting functionalityusing non-AI strangler refactoring.
- Risk assessment: Improve understanding, maintainability, and robustness atboth the architecture and code level.
- Refactoring ROI: Reduces dependency on outside sources for complexrefactoring tasks.
- From black box to open-book: Gain a deeper trust of what your system isdoing today - even in the face of AI-generated code.
napi aims to support all major programming languages. Here is the currentstatus:
| Language/Framework | Status |
|---|---|
| Python | ✅ Supported |
| C# | ✅ Supported |
| C | ✅ Supported |
| Java | ✅ Supported |
| C++ | 🚧 In Progress |
| PHP | 🚧 In Progress |
| JavaScript | 🚧 In Progress |
| TypeScript | 🚧 In Progress |
For the latest updates, visit ourproject board.
napi works out of the box on both mac, linux, and windows systems.
To installnapi, you can use our installation script:
Wyou to install napi using our convenience script:
curl -fsSL https://raw.githubusercontent.com/nanoapi-io/napi/refs/heads/main/install_scripts/install.sh| bashYou can also download and install the latest release manually directly from ourGitHub repository:
https://github.com/nanoapi-io/napi/releases/latest
You can run napi using Windows Subsystem for Linux (WSL)https://learn.microsoft.com/en-us/windows/wsl/install
We are actively working on supporting windows natievely.
If you encounter any issues during installation, please refer to ourTroubleshooting Guide
napi provides a streamlined Command-Line Interface (CLI) to interact with andrefactor your software projects quickly and efficiently.
For a full list of commands, run:
napi --help
Authenticate with the NanoAPI service. This step is required to access theNanoAPI UI and to use certain features ofnapi.
Initialize the project. This step is required before running any other command.
This will create a .napirc configuration file in the project root, storing pathsand settings necessary for further commands.
Generate a manifest of your codebase that captures its structure, dependencies,and relationships and pushes it to your NanoAPI workspace in the app.
Extract specific symbols (functions, classes, etc.) from your codebase intoseparate files. Use the format--symbol file|symbol where file is the pathrelative to your project root and symbol is the name to extract. The UI cangenerate these commands for convenient copy-pasting when browsing your code.
Important: Run
napi manifest generatewhenever you make significantchanges to your codebase to ensure your manifest stays up-to-date. Themanifest data can be integrated into CI/CD workflows to track architecturalchanges over time.
napi works seamlessly with CI/CD platforms like GitHub Actions, GitLab CI/CD,and Jenkins. This allows us to build the code manifest needed for visualizationand refactoring in the background, without needing to wait for it to run locallyin the case of very large codebases (>1M lines of code).
More information
We welcome contributions from the community. Please read ourcontributing guidefor details on how to get involved.
napi is licensed under theSustainable Use License.
- Automating the Strangler Pattern with Microlithic Development
- Rise of the "Microlith": Rethinking Microservices for Modern Developers
NanoAPI is a fair-source project. Because of this, we feel it would be unethicalto keep any donations to ourselves. Instead, here is how we will handledonations:
- Donations go into a pool
- Money from the pool will be distributed to contributors
- At the end of the year, any remaining money will be donated to a charity ofthe community's choice
We will post regular updates on how much money is in the pool and how it isbeing distributed.
About
Software architecture tooling for the AI age
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.

