An OS-independent Automated Tool Manager for eSim that focuses on dependency checking and a user-friendly command-line interface (CLI). This tool helps users verify whether required external tools and their dependencies are correctly installed and compatible with their system.
eSim integrates multiple external EDA tools such as Ngspice, KiCad, Scilab, and Verilator. Managing these tools manually across different operating systems can lead to missing dependencies and configuration issues.
This project provides:
- An OS-aware dependency checker (Windows / Linux / macOS)
- A simple CLI interface to view tool and dependency status
- Clear user feedback for missing or incompatible dependencies
- Logging of actions and errors for traceability
Note: This prototype focuses on Dependency Checker and User Interface deliverables as required by the task.
The Automated Tool Manager follows a modular architecture where each component has a clearly defined responsibility.
+----------------------+
| User (CLI) |
+----------+-----------+
|
v
+----------------------+
| Tool Manager CLI |
| (main.py) |
+----------+-----------+
|
v
+------------------------------+
| Core Logic |
| - OS Detection |
| - Tool Database Loader |
+----------+-------------------+
|
v
+------------------------------+
| Dependency Checker Module |
| (dependency_checker.py) |
| - System dependency checks |
| - Version detection |
+----------+-------------------+
|
v
+------------------------------+
| Output Formatter & Logger |
| - Console output |
| - Log files |
+------------------------------+
eSim-Automated-Tool-Manager/
│
├── main.py # CLI entry point
├── dependency_checker.py # Core dependency checking logic
├── utils.py # OS detection & helper utilities
├── logger_config.py # Logging configuration
├── tool_db.json # Tool & dependency metadata
├── requirements.txt # Python dependencies
├── tool_manager.log # Runtime logs
├── README.md # Project documentation
│
└── docs/
└── Design_Document.md # Detailed design document
- Ngspice
- KiCad
- Verilator
- Scilab
- Java (dependency for Scilab)
-
Checks required system tools and dependencies
-
Uses OS-aware logic to avoid false positives
- Windows: executable path checks (e.g.,
Scilab.exe) - Linux/macOS: CLI-based checks (e.g.,
verilator --version)
- Windows: executable path checks (e.g.,
-
Detects tool availability and versions (when possible)
-
Simple command to run all dependency checks
-
Displays:
- Tool name
- Dependency name
- Installation status
- Version information
-
Logs results and errors
- Python 3.8 or higher
- Windows / Linux / macOS
git clone <your-private-repo-url>
cd eSim-Automated-Tool-Managerpip install -r requirements.txtRun the Automated Tool Manager:
python main.pyThis will execute dependency checks and display the results in the terminal.
python -c "import platform; print(platform.system())"python -c "from dependency_checker import check_scilab; print(check_scilab())"Note:
On Windows, Scilab is detected via installation paths and executables
(GUI-based installation, limited CLI support).
On Linux/macOS, Scilab is detected using CLI-based version checks.
python -c "from dependency_checker import check_verilator; print(check_verilator())"python main.pyA detailed design document describing the architecture, module breakdown, and interaction between components is available at:
docs/Design_Document.md
- Automatic installation using package managers (apt, Chocolatey, Homebrew)
- Tool update and upgrade management
- Version compatibility enforcement
- Graphical User Interface (GUI)
- Deeper integration with eSim configuration
A short demo video (5–10 minutes) explaining the design, architecture, and working of the eSim Automated Tool Manager is available here:
👉 Demo Link: https://drive.google.com/file/d/1SF1LpPBkxvQ76LZdaEiHhfGTZM0Pxfcf/view?usp=sharing
This repository is submitted as part of:
eSim Semester Long Internship – Spring 2026 Task 5 Submission
The repository is private and access has been granted to the evaluators as per submission guidelines.
Sakshi Mittal Saumya Dwivedi