Skip to content

Commit e95c6c6

Browse files
committed
Add new CLI logo assets in SVG and PNG formats and update Cargo manifest to reference PNG icon
- Introduced `CLI_Logo.svg` and `CLI_Logo.png`. - Updated Cargo.toml `icons` field to reference `CLI_Logo.png`.
1 parent 71fa632 commit e95c6c6

2 files changed

Lines changed: 40 additions & 39 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name = "jarvy"
33
version = "0.1.0"
44
license = "MIT"
55
edition = "2024"
6+
description = "Jarvy is a fast, cross-platform CLI that installs and manages developer tools across macOS and Linux."
67

78
[build]
89
jobs=16

Readme.md

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,66 @@
1-
Jarvy · Rust-based Dev Environment CLI
1+
<img src="assets/Vertical_Logo.svg" alt="Jarvy Vertical Logo" width="200" />
2+
3+
# Rust-based Dev Environment CLI
4+
5+
STOP PAYING FOR DEV PODS AND CODESPACES!
26

37
Jarvy is a fast,
48
Rust-based command-line tool
59
that standardizes and automates local development environment setup for your application repositories.
10+
611
It tackles the infamous “works on my machine”
712
problem by ensuring every developer on the team has the same development environment configuration,
813
regardless of their OS.
14+
915
Instead of relying on remote dev environments like dev-pods or GitHub Codespaces, Jarvy runs on your local machine,
1016
using a simple config file (jarvy.toml) in your repo to provision all required tools.
17+
1118
This approach is particularly useful for team leads and architects
1219
who want to enforce consistent setups across the team.
1320

14-
Jarvy makes it easy to define a standard dev stack once and apply it everywhere.
15-
16-
Why Jarvy?
21+
## Why Jarvy?
1722

1823
Modern development teams face challenges with environment drift and onboarding new developers.
24+
1925
Jarvy was created to simplify and streamline this process.
26+
2027
Here is why you might want Jarvy in your workflow:
21-
Standardized Environments:
28+
- **Standardized Environments:**
2229
Jarvy ensures all developers work in an identical environment with the same tool versions,
23-
no matter if they use macOS, Linux, or Windows.
30+
no matter if they use macOS, Linux, or Windows.
2431
By codifying the setup in jarvy.toml,
25-
you eliminate cross-OS discrepancies and those hard-to-diagnose errors from mismatched setups.
26-
Instant Onboarding: New team members can get up and running in seconds rather than days.
32+
you eliminate cross-OS discrepancies and those hard-to-diagnose errors from mismatched setups.
33+
- **Instant Onboarding:** New team members can get up and running in seconds rather than days.
2734
Instead of following lengthy setup guides,
28-
a developer can simply clone the repo and run jarvy to have all necessary tools installed and configured.
35+
a developer can simply clone the repo and run jarvy to have all necessary tools installed and configured.
2936
This drastically cuts down onboarding time and frustration.
30-
Dev Environment as Code: Jarvy treats your development environment configuration as source code.
37+
- **Dev Environment as Code:** Jarvy treats your development environment configuration as source code.
3138
The jarvy.toml file lives in your repository (version-controlled),
3239
providing a single source of truth for required tools and versions.
33-
This creates a consistent developer experience and captures environment knowledge in code
40+
This creates a consistent developer experience and captures environment knowledge in code –
3441
no more wiki pages of manual setup steps.
35-
Cross-Platform Automation: Jarvy works on macOS, Linux, and Windows and intelligently adapts to each platform .
42+
- **Cross-Platform Automation:** Jarvy works on macOS, Linux, and Windows and intelligently adapts to each platform .
3643
It leverages native package managers and installers to set up tools
37-
(e.g. Homebrew on macOS, apt on Linux, Chocolatey/Winget on Windows)
38-
so that the same config yields the same results everywhere  .
44+
(e.g., Homebrew on macOS, apt on Linux, Chocolatey/Winget on Windows)
45+
so that the same config yields the same results everywhere.
3946
Your whole team (and CI pipelines) can share one config file regardless of OS.
40-
• Local, Offline-Friendly:
41-
Unlike cloud-based dev environments (such as Codespaces or DevPod)
47+
- **Local, Offline-Friendly:** Unlike cloud-based dev environments (such as Codespaces or DevPod)
4248
that require internet access and remote VMs/containers,
4349
Jarvy configures your local machine.
4450
After the initial installations, you can work offline and at native performance.
4551
There is no heavy container overhead or vendor lock-in – you have full control of your workstation.
46-
Safe & Idempotent: Running Jarvy is safe to do repeatedly.
52+
- **Safe & Idempotent:** Running Jarvy is safe to do repeatedly.
4753
It will detect if a required tool is already installed (and at the correct version) and skip or update it as needed.
4854
This means you can include jarvy in routine setup scripts or CI jobs to continually ensure consistency.
4955
Jarvy acts as a lightweight provisioner that brings a machine to the desired state defined in jarvy.toml.
50-
Extensible and Open Source: Jarvy is open source (MIT-licensed) and built with Rust for performance and reliability.
56+
- **Extensible and Open Source:** Jarvy is open source (MIT-licensed) and built with Rust for performance and reliability.
5157
It’s designed to be extensible – if your project needs a new tool or custom setup, you can extend Jarvy’s functionality.
5258
We welcome contributions from the community to add support for more tools, package managers, and integrations.
5359

54-
Installation
60+
## Installation
5561

5662
Jarvy is distributed as a standalone binary, so it is easy to install on any platform:
57-
With Cargo (Rust): If you have Rust installed, you can install Jarvy from crates.io:
63+
- With Cargo (Rust): If you have Rust installed, you can install Jarvy from crates.io:
5864

5965
cargo install jarvy
6066

@@ -117,19 +123,19 @@ How Does Jarvy Work? (Cross-Platform Support)
117123

118124
Jarvy is designed to work on macOS, Linux, and Windows seamlessly.
119125
Under the hood, it detects your operating system and uses the appropriate method to install each tool:
120-
macOS: Jarvy uses Homebrew for most package installations (if Homebrew is available),
126+
- macOS: Jarvy uses Homebrew for most package installations (if Homebrew is available),
121127
since Homebrew is a widely-used package manager on macOS .
122128
For tools not in Homebrew, Jarvy can fall back to other installation methods
123129
(like downloading a binary or using an installer).
124130
It ensures that things like Node, Docker, etc.,
125131
are installed as if you installed them manually, but automatically through the config.
126-
Linux: Jarvy supports Debian/Ubuntu-based systems by using apt-get to install packages when possible.
132+
- Linux: Jarvy supports Debian/Ubuntu-based systems by using apt-get to install packages when possible.
127133
(In the future it may support other distro package managers or Homebrew on Linux as needed.)
128134
If a tool is not in the apt repositories or if you are on a different distro,
129135
Jarvy will attempt alternate approaches such as downloading official release binaries.
130136
The goal is that any Linux developer can get the required tools with the same single command,
131137
without fiddling with their distro’s specifics.
132-
Windows: Jarvy can run natively on Windows.
138+
- Windows: Jarvy can run natively on Windows.
133139
It will try to use package managers like Chocolatey or Winget to install software
134140
(for example, installing Node.js or Docker Desktop via those managers) .
135141
If a tool is not available via a package manager, Jarvy may download the official installer or binary.
@@ -146,16 +152,16 @@ please check our documentation or consider contributing a new installer integrat
146152
Usage Tips for Developers and Architects
147153

148154
Jarvy is meant to be straightforward, but here are a few tips to get the most out of it:
149-
Keep jarvy.toml Updated: Treat the jarvy.toml like part of your code.
155+
- Keep jarvy.toml Updated: Treat the jarvy.toml like part of your code.
150156
Whenever your project adds a new dependency (e.g., you now require Go or a new CLI tool), update the config.
151157
This way, Jarvy remains the up-to-date checklist of everything needed to get the project running.
152-
Review on Onboarding: If you are a tech lead or architect, you can standardize dev setups by providing a jarvy.toml.
158+
- Review on Onboarding: If you are a tech lead or architect, you can standardize dev setups by providing a jarvy.toml.
153159
When new developers join, just have them install Jarvy and run it.
154160
The faster they get their environment running, the faster they can be productive on the project .
155-
Combine with CI: You can use Jarvy in CI pipelines to ensure the build environment matches the dev environment.
161+
- Combine with CI: You can use Jarvy in CI pipelines to ensure the build environment matches the dev environment.
156162
For example, in a GitHub Actions workflow, you might install Jarvy and run jarvy to set up tools before running tests.
157163
This guarantees that CI is using the same tool versions as developers, closing the “it works locally but not in CI” gap.
158-
Complement vs. Replace Containers: Jarvy is not mutually exclusive with Docker or dev containers –
164+
- Complement vs. Replace Containers: Jarvy is not mutually exclusive with Docker or dev containers –
159165
you can certainly still use containerized dev environments.
160166
But Jarvy shines when you want quick,
161167
local setups or when working on projects that do not have a full devcontainer setup.
@@ -166,41 +172,35 @@ For Contributors (Building and Extending Jarvy)
166172

167173
We welcome contributions to make Jarvy better!
168174
If you would like to extend Jarvy or fix a bug, here is how to get started:
169-
Project Structure: Jarvy is written in Rust.
175+
- Project Structure: Jarvy is written in Rust.
170176
The core logic for parsing the jarvy.toml and installing tools is located in the src/ directory
171177
(with modules for different OS installers and tool definitions).
172178
It uses the clap crate for command-line argument parsing and serde for TOML parsing.
173-
Setting up for Development: First, ensure you have Rust installed (Nightly not required; stable Rust is fine).
179+
- Setting up for Development: First, ensure you have Rust installed (Nightly not required; stable Rust is fine).
174180
Fork and clone the repository, then run cargo build to compile Jarvy.
175181
You can run the tests with cargo test.
176182
We strive to keep the test suite comprehensive, especially for parsing config files and simulating installation logic.
177-
Adding Support for a New Tool/Platform:
183+
- Adding Support for a New Tool/Platform:
178184
If you want to add a new tool that Jarvy should be able to install,
179185
check out the existing implementations under src/tools/
180186
(hypothetical path).
181187
You might need to add a definition for the tool (name, possible installation methods, how to verify version)
182188
and then implement installation logic for each OS.
183189
For example, adding support for Python might involve using pyenv on Linux/macOS and the official installer on Windows.
184190
We encourage discussing in an issue first if you are planning a large addition, to ensure we can integrate it smoothly.
185-
Coding Style: We follow Rust Clippy and fmt guidelines.
191+
- Coding Style: We follow Rust Clippy and fmt guidelines.
186192
Please run cargo fmt and cargo clippy before submitting a PR.
187193
Write clear, concise commit messages (we use Conventional Commits for release notes, e.g., feat:
188194
add support for Python installation).
189-
Submitting a Pull Request: Once your changes are ready and tested, open a PR on GitHub.
195+
- Submitting a Pull Request: Once your changes are ready and tested, open a PR on GitHub.
190196
Describe the change and link any relevant issues.
191197
The CI pipeline will run our test suite and linters.
192198
Maintainers will review your contribution for alignment with project goals and code quality.
193199
We aim to be responsive and collaborative in code reviews – contributions are valued!
194-
Community and Discussion: Feel free to open issues for feature requests or bug reports.
200+
- Community and Discussion: Feel free to open issues for feature requests or bug reports.
195201
You can also join our Slack/Discord (if available) or GitHub Discussions to talk with the maintainers and other users.
196202
We want Jarvy to solve real problems for dev teams, so feedback and ideas are very welcome.
197203

198-
License
199-
200-
This project is released under the MIT License. See the LICENSE file for details. You are free to use Jarvy in your projects – if you find it useful, we would love to hear about it!
201-
202-
203-
204204
Jarvy exists to make the lives of developers and architects easier by eliminating the friction of environment setup. With a single config file and a one-time setup, teams can achieve a repeatable, reliable development environment on any machine. We believe that setting up a new project’s dev environment should be quick and hassle-free – and with Jarvy, it finally is. Give it a try in your next project and join us in evolving how dev environments are managed. Happy coding! 🎉
205205

206206
GitHub Repository   •   Documentation   •   Report an Issue

0 commit comments

Comments
 (0)