Sponsored by Deepsite.site

napi - Better Software Architecture for the AI Age

Created By
nanoapi-io9 months ago
Software architecture tooling for the AI age
Content

NanoAPI Banner

napi - Better Software Architecture for the AI Age

napi is a versatile tool built by NanoAPI and designed to automatically provide insights into the architectural complexity of your software, while allowing for the novel extraction of functionality from codebases into smaller units. With both a powerful CLI and an intuitive UI, napi is compatible with all major CI/CD platforms, allowing seamless integration into your development and deployment pipelines.

Historically, tools like this have only been built by large consulting firms or contractors and kept behind the paywalls of consulting fees. napi aims to make these tools accessible to developers of all skill levels, without the cost. Our vision is to help you gain deeper insights into system architecture-level concerns 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.

NanoAPI UI Overview

Features

  • 🚨 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 for automation.
  • 🔍 Architecture: Get a live view of all your software and their interactions; scoped to a specific moment in time.

Why napi?

  • Enables discovery into legacy systems: indentify problematic code and potential improvements early.
  • Modular Monoliths: Simplifies the process of extracting functionality using non-AI strangler refactoring.
  • Risk assessment: Improve understanding, maintainability, and robustness at both the architecture and code level.
  • Refactoring ROI: Reduces dependency on outside sources for complex refactoring tasks.
  • From black box to open-book: Gain a deeper trust of what your system is doing today - even in the face of AI-generated code.

Supported Languages

napi aims to support all major programming languages. Here is the current status:

Language/FrameworkStatus
Python✅ Supported
C#✅ Supported
C✅ In Progress
Java🚧 In Progress
C++🚧 In Progress
PHP🚧 In Progress
JavaScript🚧 In Progress
TypeScript🚧 In Progress

For the latest updates, visit our project board.

Installation

napi works out of the box on both mac and linux systems.

To use this tool on Windows, you will need to install and run the CLI commands from there.

WSL (Windows Subsystem for Linux)

To install napi, you can use our installation script:

curl -fsSL https://raw.githubusercontent.com/nanoapi-io/napi/refs/heads/main/install_scripts/install.sh | bash

Our download and install manually from:

https://github.com/nanoapi-io/napi/releases/latest

This will download and install the latest version of napi to your system.

CLI Usage

napi provides a streamlined Command-Line Interface (CLI) to interact with and refactor your software projects quickly and efficiently.

For a full list of commands, run:

napi --help

Overview of all commands

napi init

Initialize the project. This step is required before running any other command.

This will create a .napirc configuration file in the project root, storing paths and settings necessary for further commands.

napi manifest generate

Generate a manifest of your codebase that captures its structure, dependencies, and relationships. This command analyzes your code and writes the manifest data to the configured napi_out directory in your project.

napi manifest view

Open the NanoAPI UI in your default browser to visualize and explore the manifest generated by napi manifest generate. This provides an interactive view of your codebase's architecture, helping you identify areas for potential improvements and refactoring.

napi extract

Extract specific symbols (functions, classes, etc.) from your codebase into separate files. Use the format --symbol file|symbol where file is the path relative to your project root and symbol is the name to extract. The UI can generate these commands for convenient copy-pasting when browsing your code.

Important: Run napi manifest generate whenever you make significant changes to your codebase to ensure your manifest stays up-to-date. The manifest data can be integrated into CI/CD workflows to track architectural changes over time.

CI/CD Integration

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 visualization and refactoring in the background, without needing to wait for it to run locally in the case of very large codebases (>1M lines of code).

More information

Contributing

We welcome contributions from the community. Please read our contributing guide for details on how to get involved.

License

napi is licensed under the Sustainable Use License.

Further Reading

Donations

NanoAPI is a fair-source project. Because of this, we feel it would be unethical to keep any donations to ourselves. Instead, here is how we will handle donations:

  • 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 of the community's choice

We will post regular updates on how much money is in the pool and how it is being distributed.

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
DeepChatYour AI Partner on Desktop
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Tavily Mcp
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Playwright McpPlaywright MCP server
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
CursorThe AI Code Editor
Amap Maps高德地图官方 MCP Server
WindsurfThe new purpose-built IDE to harness magic
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
ChatWiseThe second fastest AI chatbot™
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Serper MCP ServerA Serper MCP Server
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.