0.1.1 • Published 5 months ago
alffy v0.1.1
🤖 Alfred
The butler for the CLI
Limitations
- Currently only supports MacOS
- Only supports .zprofile for now
Getting Started
- Clone the repository
- Run
bun install
- Create commands.json in the root directory :
echo "[]" > commands.json
- Run
bun compile
- Try running
alfred
in the terminal (e.galfred hello
)
Command Schema
AlfredCommandSchema
The schema for an Alfred command is as follows:
interface AlfredCommandSchema {
name: string; // The name of the command
description: string; // A brief description of the command
command: {
dir?: string; // Optional directory where the command should be executed
cmd: string; // The command to execute
};
config?: {
confirm?: boolean; // Optional flag to require confirmation before execution
};
extends?: string; // Optional name of a command to extend
options?: {
flags: string; // Command line flags (e.g., "-n, --name [name]")
description: string; // Description of what the option does
required?: boolean; // Whether the option is required
defaultValue?: any; // Default value for the option
envVar?: string; // Environment variable to use for the option
choices?: string[]; // Array of string choices for the option
type?: "number" | "string" | "boolean" | "url" | "path"; // Type of the option
}[];
}
Examples
Example 1: Basic Command
{
"name": "hello",
"description": "Prints hello world",
"command": {
"cmd": "echo 'Hello, World!'"
}
}
Example 2: Command with Options
{
"name": "greet",
"description": "Greets the user",
"command": {
"cmd": "echo 'Hello, ${name}!'"
},
"options": [
{
"flags": "--name [name]",
"description": "Name of the user",
"type": "string",
"defaultValue": "User"
}
]
}
Example 3: Extending a Command
{
"name": "list",
"description": "List files",
"command": {
"cmd": "ls"
}
},
{ "name": "list:all",
"extends": "list",
"command": {
"cmd": "{super} -a"
}
}
An extended command doesn't need to redefine commands, and can simply redefine options.
Options
- flags: Command line flags (e.g., --name name).
- description: Description of the option.
- required: Whether the option is required.
- defaultValue: Default value for the option.
- envVar: Environment variable for the option.
- choices: Array of string choices.
- type: Type of the option (number, string, boolean, url, path).
Configuration
- confirm: Whether confirmation is needed before executing the command.
0.1.1
5 months ago