# Stomata
> **Note**: Stomata is currently under development and more features and fixes are upcoming
**Stomata** is a CLI tool for **collecting and visualizing system metrics** in real-time. It provides a lightweight, terminal-based dashboard to monitor memory, swap, CPU, and other resources with a clean interface.
Right now Stomata is very minimalistic and will introduct new features as the development goes on.
---
## Features
- Real-time **memory and swap usage gauges**
- Minimal dependencies; built with **Rust**
- Designed as a **workspace**: includes a reusable library (`Stomata-core`) and a CLI (`Stomata-cli`)
---
## Installation
Install via **crates.io**:
```bash
cargo install stomata-cli
```
You can also add the stomata-core crate in your rust project as it is deployed as a separate crate
```bash
cargo add stomata-core
```
## Building Locally with Cargo
Make sure you have Rust installed on your machine. Stomata is being built using rustc version 1.90.0
Clone the master branch of the repository
```bash
git clone https://github.com/aditya172926/stomata-cli.git
```
Once cloned you can either run `cargo build` or `make build` to execute debug build command from the make file. If you want to build the release execute `make release`
To run the cli, use the command
```bash
stomata --interval 1000
```
interval is an optional arguement to give. It is the refresh rate of the metrics to be fetched and rendered on the terminal UI.
## How it looks?
Right now stomata just tracks Memory consumption and swap consumption and displays it in a TUI. This is what it looks like
<img width="1886" height="960" alt="image" src="https://github.com/user-attachments/assets/8b967255-c0c5-49cf-b041-d7a64f001670" />
## Contributing
This is a very early stage repository. But feel free to suggest features and make issues before starting to work on a pull request.
### Contributing guidelines
- Fork the repository before starting to work and making a PR.
- PRs made should be related and linked to an existing issue.
- Before making a new issue check if it is not being duplicated.
- Ask for issues to be assigned to you before starting the work.
- Work only on the issues assigned to you, to avoid other people working on the same issue.
- A contributor may be assigned to only one issue at a time, unless it is blocked by other dependent issues related to the main issue that contributor wants to work on.