shellican

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2025 License: MIT Imports: 3 Imported by: 0

README

shellican

shellican logo

shellican (shell-i-can) is a powerful CLI for managing runnables (scripts/commands) in collections. It allows you to organize your shell scripts, define their environment, and run them easily.

CI Release Go Report Card

Features

  • Collections & Runnables: Organize your scripts into collections.
  • YAML Configuration: Define runnables and environments in collection.yml and runnable.yml.
  • Environment Management: Inject environment variables defined in configuration.
  • Hooks: Pre (before) and post (after) hooks for runnables.
  • Shell Helper: Generate shell wrappers for easy access.
  • Import/Export: Share collections easily.

Installation

Go Install
go install github.com/brsyuksel/shellican@latest
Binary Releases

You can download the pre-compiled binary for your operating system (macOS, Linux) from the Releases page.

Usage

Structure

Default storage location: ~/.shellican (or $SHELLICAN_HOME/.shellican).

~/.shellican/
  ├── my-collection/
  │   ├── collection.yml
  │   ├── script-a/
  │   │   └── runnable.yml
  │   └── script-b/
  │       ├── runnable.yml
  │       └── main.sh
Commands
  • New Collection: shellican new collection <name>
  • New Runnable: shellican new runnable <collection> <name>
  • Run: shellican run <collection> <runnable> [args...]
  • List: shellican list collections or shellican list runnables <collection>
  • Show: shellican show collection <name> or shellican show runnable <collection> <name>
  • Create Shell Shortcut: shellican create-shell <collection> (creates ~/.local/bin/<collection>-shell)
  • Import/Export: shellican import <source> / shellican export <collection>

Configuration

collection.yml

name: "My Scripts"
help: "A collection of useful scripts"
readme: "README.md"
runnables:
  - script-a
environments:
  GLOBAL_VAR: "true"

script-a/runnable.yml

name: "Script A"
help: "This script does something awesome"
readme: "README.md"
run: "./main.sh" # or "echo hello"
before: "echo 'Starting...'"
after: "echo 'Finished!'"
environments:
  LOCAL_VAR: "123"

Contributing

  1. Fork the repo
  2. Create feature branch
  3. Commit changes
  4. Push and create PR

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL