You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
that standardizes and automates local development environment setup for your application repositories.
10
+
6
11
It tackles the infamous “works on my machine”
7
12
problem by ensuring every developer on the team has the same development environment configuration,
8
13
regardless of their OS.
14
+
9
15
Instead of relying on remote dev environments like dev-pods or GitHub Codespaces, Jarvy runs on your local machine,
10
16
using a simple config file (jarvy.toml) in your repo to provision all required tools.
17
+
11
18
This approach is particularly useful for team leads and architects
12
19
who want to enforce consistent setups across the team.
13
20
14
-
Jarvy makes it easy to define a standard dev stack once and apply it everywhere.
15
-
16
-
Why Jarvy?
21
+
## Why Jarvy?
17
22
18
23
Modern development teams face challenges with environment drift and onboarding new developers.
24
+
19
25
Jarvy was created to simplify and streamline this process.
26
+
20
27
Here is why you might want Jarvy in your workflow:
21
-
• Standardized Environments:
28
+
-**Standardized Environments:**
22
29
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.
24
31
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.
27
34
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.
29
36
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.
31
38
The jarvy.toml file lives in your repository (version-controlled),
32
39
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 –
34
41
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 .
36
43
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.
39
46
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)
42
48
that require internet access and remote VMs/containers,
43
49
Jarvy configures your local machine.
44
50
After the initial installations, you can work offline and at native performance.
45
51
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.
47
53
It will detect if a required tool is already installed (and at the correct version) and skip or update it as needed.
48
54
This means you can include jarvy in routine setup scripts or CI jobs to continually ensure consistency.
49
55
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.
51
57
It’s designed to be extensible – if your project needs a new tool or custom setup, you can extend Jarvy’s functionality.
52
58
We welcome contributions from the community to add support for more tools, package managers, and integrations.
53
59
54
-
Installation
60
+
## Installation
55
61
56
62
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:
58
64
59
65
cargo install jarvy
60
66
@@ -117,19 +123,19 @@ How Does Jarvy Work? (Cross-Platform Support)
117
123
118
124
Jarvy is designed to work on macOS, Linux, and Windows seamlessly.
119
125
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),
121
127
since Homebrew is a widely-used package manager on macOS .
122
128
For tools not in Homebrew, Jarvy can fall back to other installation methods
123
129
(like downloading a binary or using an installer).
124
130
It ensures that things like Node, Docker, etc.,
125
131
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.
127
133
(In the future it may support other distro package managers or Homebrew on Linux as needed.)
128
134
If a tool is not in the apt repositories or if you are on a different distro,
129
135
Jarvy will attempt alternate approaches such as downloading official release binaries.
130
136
The goal is that any Linux developer can get the required tools with the same single command,
131
137
without fiddling with their distro’s specifics.
132
-
• Windows: Jarvy can run natively on Windows.
138
+
-Windows: Jarvy can run natively on Windows.
133
139
It will try to use package managers like Chocolatey or Winget to install software
134
140
(for example, installing Node.js or Docker Desktop via those managers) .
135
141
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
146
152
Usage Tips for Developers and Architects
147
153
148
154
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.
150
156
Whenever your project adds a new dependency (e.g., you now require Go or a new CLI tool), update the config.
151
157
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.
153
159
When new developers join, just have them install Jarvy and run it.
154
160
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.
156
162
For example, in a GitHub Actions workflow, you might install Jarvy and run jarvy to set up tools before running tests.
157
163
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 –
159
165
you can certainly still use containerized dev environments.
160
166
But Jarvy shines when you want quick,
161
167
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)
166
172
167
173
We welcome contributions to make Jarvy better!
168
174
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.
170
176
The core logic for parsing the jarvy.toml and installing tools is located in the src/ directory
171
177
(with modules for different OS installers and tool definitions).
172
178
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).
174
180
Fork and clone the repository, then run cargo build to compile Jarvy.
175
181
You can run the tests with cargo test.
176
182
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:
178
184
If you want to add a new tool that Jarvy should be able to install,
179
185
check out the existing implementations under src/tools/
180
186
(hypothetical path).
181
187
You might need to add a definition for the tool (name, possible installation methods, how to verify version)
182
188
and then implement installation logic for each OS.
183
189
For example, adding support for Python might involve using pyenv on Linux/macOS and the official installer on Windows.
184
190
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.
186
192
Please run cargo fmt and cargo clippy before submitting a PR.
187
193
Write clear, concise commit messages (we use Conventional Commits for release notes, e.g., feat:
188
194
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.
190
196
Describe the change and link any relevant issues.
191
197
The CI pipeline will run our test suite and linters.
192
198
Maintainers will review your contribution for alignment with project goals and code quality.
193
199
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.
195
201
You can also join our Slack/Discord (if available) or GitHub Discussions to talk with the maintainers and other users.
196
202
We want Jarvy to solve real problems for dev teams, so feedback and ideas are very welcome.
197
203
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
-
204
204
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! 🎉
205
205
206
206
GitHub Repository • Documentation • Report an Issue
0 commit comments