A centralized developer onboarding tool.
Please note that this readme was generated by an LLM, if you want to see my nonchalant take on it, please reference this commit -> 21bc810
eddy.sh
aims to simplify and standardize the process of setting up developer workstations. Instead of relying on scattered documentation, tribal knowledge, or outdated wiki pages, eddy.sh
provides a repeatable, version-controlled approach using configuration files.
Currently, it supports macOS and Windows.
Download the appropriate eddy binary for your operating system from the Releases page. (Note: At this stage, only macOS and Windows are supported.)
Create or obtain a valid .yml
configuration file that defines the tools and environments needed for your project.
Run eddy
with the configuration file to set up the system automatically.
In many teams, onboarding involves navigating outdated or fragmented setup guides—often written informally or buried in internal wikis. Even when scripts exist to automate parts of the setup, they tend to become stale or overly specific to individual environments.
eddy.sh
was built to address this problem. By defining tool and environment requirements in a structured .yml
file, you can:
- Reduce the time it takes to onboard new developers—from days to minutes.
- Ensure consistency across machines and team members.
- Adapt quickly to changing requirements or tooling.
In the future, I want eddy.sh
to support system scanning. Running a command like eddy.sh scan
could generate a .yml
file based on your current environment—making it easy to share configurations with new team members.
If you are running eddy.sh
on windows, please do that with elevated priviliges. Creating symlinks is not available as a regular user.
To use this app, simply run the binary:
eddy.sh
If you want to use a custom configuration file (the default is ~/.eddy.sh/config.yaml
),
specify it with the --config
flag:
eddy.sh --config ~/configs/config.yaml
eddy.sh
can be used both interactively and via command-line arguments for automation or scripting.
eddy.sh install <tool> [version]
eddy.sh help
- Install Node Version Manager (nvm) (latest):
eddy.sh install nvm
- Install Node Version Manager (nvm) version 0.40.3:
eddy.sh install nvm 0.40.3
- Install all JavaScript tools (e.g., nvm):
eddy.sh install javascript
- Install CMake (latest):
eddy.sh install cmake
- Install CMake version 3.27.0:
eddy.sh install cmake 3.27.0
- Install all C++ tools (cmake, emscripten, ninja):
eddy.sh install cpp
javascript
,js
– All JavaScript tools (currently: nvm)nvm
– Node Version Managercpp
,c++
– All C++ tools (cmake, emscripten, ninja)cmake
– CMake build systememscripten
– Emscripten compilerninja
– Ninja build system
You can specify a version for any tool. If omitted, the latest version will be installed.
For more information, run:
eddy.sh help
Contributions are welcome!
The project is designed so that large language models (LLMs) can assist in generating installation scripts for new tools. To contribute:
- Add a new installation definition file for the tool.
- Include any relevant context from the codebase.
- Confirm the tool installs and functions as expected.
- Make sure you also extend CLI and the docs.
- Submit a pull request with your changes.
To run the app locally:
go run main.go
To enable verbose logging, run:
source scripts/enable_debug.sh