Skip to content

Wave-cli/wave-core

Repository files navigation

wave-core

GitHub stars Issues License: MIT Go Release

A modular CLI orchestrator powered by plugins. Plugins are standalone binaries installed to ~/.wave/plugins/ and executed through the unified wave command.

Table of contents

Install

Via bash (recommended)

curl -fsSL https://raw.githubusercontent.com/Wave-cli/wave-core/main/install.sh | bash

Via Go

go install github.com/wave-cli/wave-core@latest

Quick start

# Initialize a project
wave init

# Install a plugin
wave install wave-cli/flow

# Use it
wave flow build

Wavefile

Projects are configured through a Wavefile at the project root:

[project]
name = "my-app"
version = "1.0.0"
owner = "bouajila"

[flow]
build = { cmd = "go build -o bin/app", on_success = "echo done" }
clean = { cmd = "rm -rf bin/" }
dev   = { cmd = "go run ." }

Each section after [project] maps to an installed plugin. wave-core passes the section as JSON on stdin when executing the plugin.

Built-in commands

Command Description
wave init Scaffold a Wavefile
wave install <org/plugin> Install a plugin from GitHub Releases
wave uninstall <plugin> Remove an installed plugin
wave list List installed plugins
wave config Show global configuration
wave version Print version info

This repository includes a Wavefile that mirrors common just recipes. If you have the flow plugin installed, you can run the usual dev tasks via:

wave flow test
wave flow test-e2e
wave flow lint
wave flow build
wave flow ci

Development

# Run all tests
go test ./...

# With coverage
go test ./... -cover

# Build
go build -o bin/wave .

See docs/architecture.md for detailed architecture documentation.

License

MIT

About

the core system of wave cli

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors