Legacy2Modern: COBOL to Python modernization
Project description
Legacy2Modern (L2M)
Legacy2Modern (L2M) is an open-source, AI coding agent that helps you modernize legacy codebases into modern programming languages within your terminal.
Features
- Modern TUI: Clean, Codex-style terminal interface with brand-colored UI elements
- Multi-Provider Support: Works with OpenAI, Anthropic, DeepSeek, Gemini, and 100+ other LLM providers via LiteLLM
- Interactive Chat: Natural conversation with your codebase - ask questions, request changes, and get AI assistance
- File Management: Add files to context, drop them when done, view what's in your chat session
- Git Integration: Automatic commits, undo support, and repository-aware context
- Streaming Responses: Real-time AI responses with markdown rendering
- Session History: Persistent conversation history across sessions
Quick Start
Prerequisites
- Python 3.10+
- BYOK for your preferred LLM provider (OpenAI, Anthropic, etc.)
Installation
# Install L2M
pip install l2m
# Set up environment
l2m --help # Verify installation
Set Up API Keys
To set up your API key, create a .env file at the root of your project and add your provider key(s):
# Example for OpenAI:
OPENAI_API_KEY=sk-...
# Example for Anthropic:
ANTHROPIC_API_KEY=sk-ant-...
# Example for DeepSeek:
DEEPSEEK_API_KEY=...
# Add other providers as needed
You can quickly start by copying the example environment file:
cp .env.example .env
Usage
# Start the interactive CLI
l2m
Documentation
- Getting Started - Installation and quick start guide
- Full Documentation - Complete documentation index
License
This project is licensed under the Apache-2.0 License. See the LICENSE file for details.
Security
For security vulnerabilities, please email naingoolwin.astrio@gmail.com instead of using the issue tracker. See SECURITY.md for details.
Contributing
We welcome all contributions — from fixing typos to adding new language support! See CONTRIBUTING.md for setup instructions, coding guidelines, and how to submit PRs.
Contributors
Community & Support
- Follow our project updates on X
- Join our Discord
- Join the discussion: GitHub Discussions
- Report bugs: GitHub Issues
Contact Us
For partnership inquiries or professional use cases:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file l2m-0.2.0.tar.gz.
File metadata
- Download URL: l2m-0.2.0.tar.gz
- Upload date:
- Size: 207.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecf3e100bdab0c552303fc56dc66f213043a3ce0de03b8a3005c901c2a8ecbde
|
|
| MD5 |
b06507749cad0ce8ad83e4c338773244
|
|
| BLAKE2b-256 |
0342153c7c7f8fdd6ca124d183df7515b5113c77a34c24dd98bdf07bed70b64a
|
Provenance
The following attestation bundles were made for l2m-0.2.0.tar.gz:
Publisher:
pypi-publish.yml on astrio-ai/l2m
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
l2m-0.2.0.tar.gz -
Subject digest:
ecf3e100bdab0c552303fc56dc66f213043a3ce0de03b8a3005c901c2a8ecbde - Sigstore transparency entry: 701905931
- Sigstore integration time:
-
Permalink:
astrio-ai/l2m@38344dbfd38e7dfec7ea6c9537c99c7f31d6d260 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/astrio-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@38344dbfd38e7dfec7ea6c9537c99c7f31d6d260 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file l2m-0.2.0-py3-none-any.whl.
File metadata
- Download URL: l2m-0.2.0-py3-none-any.whl
- Upload date:
- Size: 252.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af3d6b1f1eacca98610b4062086321df1efc188fe4bf0f5d129be5e817cd8403
|
|
| MD5 |
1f4c7c1fb536352a9c09ed2a56bc59da
|
|
| BLAKE2b-256 |
92db027f7d9b35e18d0c9dfa0ebe77630150044168b653425732a40400c9e847
|
Provenance
The following attestation bundles were made for l2m-0.2.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on astrio-ai/l2m
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
l2m-0.2.0-py3-none-any.whl -
Subject digest:
af3d6b1f1eacca98610b4062086321df1efc188fe4bf0f5d129be5e817cd8403 - Sigstore transparency entry: 701906034
- Sigstore integration time:
-
Permalink:
astrio-ai/l2m@38344dbfd38e7dfec7ea6c9537c99c7f31d6d260 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/astrio-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@38344dbfd38e7dfec7ea6c9537c99c7f31d6d260 -
Trigger Event:
workflow_dispatch
-
Statement type: