Lanno Version 1

Lanno has released a formal version and is now officially at version 1.0.

https://github.com/Chivier/lanno

Why Lanno is Needed

In software development, code organization and documentation management have always been challenges faced by developers. While AI tools like Copilot excel in code auto-completion, they still fall short in overall code structure organization.

Currently, there are many project-level code completion tools, but we often overlook one question: what is structure.

In modern projects like CMake and Bazel, a large number of complex files need to be organized and coupled. However, these project integration tools only describe project dependencies and do not address “semantic structure,” which means “why do I need to split this into a independent module.”

This development landscape has indeed revealed many potential opportunities, and this project essentially serves two purposes:

  1. For humans: I explain the purpose of files to my collaborators.
  2. For machines: After AI performs data annotation, it gains a format that can be used to annotate file functions.

In short, Lanno was created to provide a simple and intuitive way to add comments and tags to files. As the number of project files increases, quickly understanding the purpose of each file becomes challenging. With Lanno, you (or possibly GPT) can immediately see the tags and descriptions of files without opening each one to check its content.

Lanno is particularly important for team collaboration. When new members join a project, there’s no need to explain the function of each file individually; they can get an overview of the files through Lanno, significantly reducing the onboarding time.

How Did I Implement It?

The implementation of Lanno is based on simple yet powerful principles:

  1. Data Storage: Uses JSON format (.lanno.json) to store file metadata, ensuring a clear and easy-to-handle data structure.
  2. Command Line Interface: Designed intuitive syntax, such as +tag to add tags and -tag to remove tags, allowing users to operate quickly from the command line.
  3. Interactive Interface: Implemented a Vim-like navigation method that supports paginated browsing, searching, and quick editing, making file management in large projects efficient.
  4. Scalability: Designed with scalability in mind, making it easy to add more features in the future, such as file classification and automatic tag suggestions.

How Does This Implementation Benefit Me?

The implementation of Lanno brings multiple benefits to the development process:

  1. Increased Development Efficiency: Quickly understand file functions and reduce the time spent getting lost in the codebase.
  2. Document-Code Coupling: Tightly integrates documentation with code, ensuring that documents are always updated in sync with the code.
  3. Structured Thinking: By adding tags to files, it encourages developers to think more systematically about project structure.
  4. Simplified Collaboration: New team members can quickly understand project organization, reducing communication costs.
  5. Reduced Technical Debt: Continuously updated file comments help prevent the accumulation of “unknown” code.

Discussion and Reflection on AI Programming

AI tools like Copilot and ChatGPT have made significant progress in code generation, but they still have limitations in code organization and understanding project structure. Lanno precisely fills this gap.

Today’s AI tools excel at local code generation, but their understanding of global project structure is still insufficient. Developers still need to organize code themselves to ensure project maintainability. The limitations of tokens are currently the boundary between us and AI; we have an infinite past, while AI can only struggle with a memory of 128K. Emerging smart tools are indeed like remarkable peaks rising in the mountains, attracting attention. They can generate complex code in an instant, leaving people in awe. However, upon closer examination, they seem like rootsless floating weeds, lacking direction. They understand the lushness of branches and leaves, yet do not comprehend the extension of roots; they can depict the posture of a flower but struggle to illustrate the layout of an entire garden. I hope Lanno provides a way to assist human developers while also potentially offering AI tools more contextual information about project structure.

(Alright, enough of the odd remarks; essentially, I just have a lot of folders and lack a tool for tagging.)

(After tagging, I found it could also be used for training and automated data annotation.)

(This is LANNO, Ls with ANNOtation.)


Lanno Version 1
http://blog.chivier.site/2025-04-09/2025/Lanno-Version-1/
Author
Chivier Humber
Posted on
April 9, 2025
Licensed under