Skip to content

kurekszymon/eddy.sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eddy.sh

A centralized developer onboarding tool.

preface

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

Overview

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.

Getting Started

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.

Why eddy.sh?

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.

Vision

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.

General Usage

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

Command Line Usage

eddy.sh can be used both interactively and via command-line arguments for automation or scripting.

Basic Commands

eddy.sh install <tool> [version]
eddy.sh help

Examples

  • 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

Available Tools

  • javascript, js – All JavaScript tools (currently: nvm)
  • nvm – Node Version Manager
  • cpp, c++ – All C++ tools (cmake, emscripten, ninja)
  • cmake – CMake build system
  • emscripten – Emscripten compiler
  • ninja – 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

Contributing

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.

Running Locally

To run the app locally:

go run main.go

To enable verbose logging, run:

source scripts/enable_debug.sh

About

open-source app to improve dev onboarding experience

Resources

Stars

Watchers

Forks

Languages