Skip to content

Scetrov/efctl

⚡ efctl

efctl Logo

Important

efctl is a high-performance CLI designed to automate the lifecycle of EVE Frontier local world contracts and smart gates.

Built with Go, it provides a premium interface to seamlessly initialize the Sui playground environment and interact with the local blockchain.

Features

  • Automated setup: Fetches and prepares the local EVE Frontier environment in seconds.
  • Smart Gate lifecycle: Supports up and down commands to gracefully manage container lifecycles.
  • Builder Flow automation: Includes extension and run commands to quickly initialize, publish, and interact with extensions in the builder-scaffold container.
  • GraphQL query tools: Interact dynamically with the local Sui GraphQL RPC to query objects and packages.
  • Dependency validation: Quickly verifies mandatory local prerequisites (like Docker/Podman, Git, and open ports).

Installation

Below are one-liner installers for each platform. They automatically detect your CPU architecture (amd64 / arm64) and download the correct binary from GitHub Releases.

Tip

Replace latest with a specific tag (e.g. v0.1.0) to pin a version.


Linux

curl

cd ~ && curl -fsSL https://github.com/Scetrov/efctl/releases/latest/download/efctl-linux-$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') \
  -o /tmp/efctl && chmod +x /tmp/efctl && mkdir -p ~/.local/bin && mv /tmp/efctl ~/.local/bin/efctl

wget

cd ~ && wget -qO /tmp/efctl https://github.com/Scetrov/efctl/releases/latest/download/efctl-linux-$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') \
  && chmod +x /tmp/efctl && mkdir -p ~/.local/bin && mv /tmp/efctl ~/.local/bin/efctl

macOS

curl (Homebrew not required)

cd ~ && curl -fsSL "https://github.com/Scetrov/efctl/releases/latest/download/efctl-darwin-$(uname -m | sed 's/x86_64/amd64/;s/arm64/arm64/')" \
  -o /tmp/efctl && chmod +x /tmp/efctl && mkdir -p ~/.local/bin && mv /tmp/efctl ~/.local/bin/efctl

Windows (PowerShell)

& {
  $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
  if ($isAdmin){
    throw "Please run this script as a non-administrator."
  }
  cd ~
  $arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "amd64" }
  $url = "https://github.com/Scetrov/efctl/releases/latest/download/efctl-windows-$arch.exe"
  $dest = Join-Path $HOME "bin\scetrov\efctl\efctl.exe"
  New-Item -ItemType Directory -Force -Path (Split-Path $dest) | Out-Null
  Invoke-WebRequest -Uri $url -OutFile $dest
  $userPath = [Environment]::GetEnvironmentVariable("Path", "User")
  if ($userPath -notlike "*$(Split-Path $dest)*") {
    [Environment]::SetEnvironmentVariable("Path", "$userPath;$(Split-Path $dest)", "User")
  }
  Write-Host "efctl installed to $dest — restart your terminal to use it."
}

Note

This installs to ~/bin/scetrov/efctl and adds it to your user PATH. You may need to restart your terminal for the PATH change to take effect.


From Source

Ensure you have Go 1.26.1+ installed.

git clone https://github.com/Scetrov/efctl.git
cd efctl
go build -trimpath -ldflags="-s -w" -o efctl main.go
mkdir -p ~/.local/bin && mv efctl ~/.local/bin/   # Linux/macOS
# Windows: move efctl.exe to a directory in your PATH

Note

Make sure ~/.local/bin is in your PATH. Add export PATH="$HOME/.local/bin:$PATH" to your shell profile if needed.

Quick Start

To spin up your local environment:

mkdir -p ~/ef
cd ~/ef
efctl env up

efctl demo

📚 Documentation

Detailed documentation is available in the repository:

  • Usage Guide: Comprehensive command reference and configuration guides.
  • CLI Reference: Auto-generated command-line documentation.
  • Contributing: Guidelines for contributing to the project.
  • Security: Security policy and reporting.

Add the output directory to your PATH:

export PATH=$PWD/output:$PATH

Build the project:

make build

Run tests:

make test

AI Tooling

This repository includes project-local context-mode configuration for both Gemini CLI and VS Code Copilot.

Machine-level prerequisite:

npm install -g context-mode

After installing, restart Gemini CLI and VS Code so both clients pick up the MCP server and hooks.

Contributing

We welcome contributions! Please see our Contributing Guidelines for more details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

EVE Frontier Development Utility — spin up EVE Frontier localnet environments fully provisioned with a single `efctl env up` command; monitor events with `efctl env dash` interact with `efctl graphql` and `efctl world`.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors