glow-cli


Nameglow-cli JSON
Version 0.3.5 PyPI version JSON
download
home_pageNone
SummarySmart CLI tool for shell template
upload_time2025-07-22 19:48:09
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords smart cli shell template
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # glow
The glow command line interface.

[![PyPI version](https://img.shields.io/pypi/v/glow-cli)](https://pypi.org/project/glow-cli/)
[![📦 pypi](https://github.com/loopsocial/glow/actions/workflows/publish.yml/badge.svg)](https://github.com/loopsocial/glow/actions/workflows/publish.yml) 

```
   ________    ____ _       __
  / ____/ /   / __ \ |     / /
 / / __/ /   / / / / | /| / /
/ /_/ / /___/ /_/ /| |/ |/ /
\____/_____/\____/ |__/|__/
____________________________
__________________________________
________________________________________
```

## 📦 Installation
```shell
pip install glow-cli
```

You can set up configuration in `~/.glow/commands/<task>.yml`

## 🚀 Usage

```shell
g list
```

## 🦋 Templating
Say you set up a config at "./commands/pod-shell.yml"
```yaml
description: |
  Entering the shell of the 1st pod that matches the keyword
command: |
  kubectl exec -it $(kubectl get pods | grep { kw } | head -n 1 | awk '{print $1}') -- /bin/bash
inputs:
  kw:
    description: keyword to match
    type: str
```

you can run the command with:
```shell
g ./commands/pod-shell.yml --kw "app1"
```

Or you can store the configuration by
```shell
g install ./commands/pod-shell.yml
```

Then you can run the command with:
```shell
g pod-shell --kw "app1"
```

## Setup Configs and Secrets
### Setup(CRUD) secrets
```shell
# to make secret token accessible to g command line
g secrets add SOME_TOKEN

g secrets list
g secrets remove SOME_TOKEN
```
### Setup(CRUD) configs
```shell
g config add SOME_CONFIG "us-east-1"
g config list
g config remove SOME_CONFIG
```

## 🦙 LLM in CLI 💻
> Why memorize commands when you can just ask?


Then you can try:
```shell
g llm "redub a.mp4 file with b.mp3, save to c.mp4 with fps 12"
```

Or you can ask other things in general:
```shell
g llm "explain btree to me"
```

Or with certain flavor to the robot role
```shell
g llm "explain btree to me" "you are a poet return everything in homer style"
```

### ✨ combine with other commands
Here's some good use cases to combine with other commands
```shell
g llm "shell into one of the pods: $(kubectl get pods) with keyword app1"
```

```shell
g llm "please summarize the commit message for $(git diff)"
```

```shell
g llm "can you explain the structure of this folder: $(ls -l)"
```

### Choose other model
Use the following to choose other model
```
g configs add GLOW_LLM
```

## Glow hub
Setup a hub on github to manage your glow commands. Say if the hub is at `https://github.com/repo_owner/hub`

Example structure of a hub:

```
./
├── README.md
├── glow
│   ├── README.md
│   ├── script-1.yml
│   ├── build-image.yml
│   ├── deploy-abc.yml
```

### Setup
```shell
g secrets add GH_PATH
g configs add GLOW_HUB_OWNER repo_owner
g configs add GLOW_HUB_REPO hub
```

### Install script
```shell
g glowhub script-1.yml
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "glow-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "smart cli, shell template",
    "author": null,
    "author_email": "\"Xiaochen Zhang (Ray)\" <ray@fireworkhq.com>",
    "download_url": "https://files.pythonhosted.org/packages/f8/01/cc14884b1cefb7cb3f42b03f1d3927f537749256681b72a1c269a85812cc/glow_cli-0.3.5.tar.gz",
    "platform": null,
    "description": "# glow\nThe glow command line interface.\n\n[![PyPI version](https://img.shields.io/pypi/v/glow-cli)](https://pypi.org/project/glow-cli/)\n[![\ud83d\udce6 pypi](https://github.com/loopsocial/glow/actions/workflows/publish.yml/badge.svg)](https://github.com/loopsocial/glow/actions/workflows/publish.yml) \n\n```\n   ________    ____ _       __\n  / ____/ /   / __ \\ |     / /\n / / __/ /   / / / / | /| / /\n/ /_/ / /___/ /_/ /| |/ |/ /\n\\____/_____/\\____/ |__/|__/\n____________________________\n__________________________________\n________________________________________\n```\n\n## \ud83d\udce6 Installation\n```shell\npip install glow-cli\n```\n\nYou can set up configuration in `~/.glow/commands/<task>.yml`\n\n## \ud83d\ude80 Usage\n\n```shell\ng list\n```\n\n## \ud83e\udd8b Templating\nSay you set up a config at \"./commands/pod-shell.yml\"\n```yaml\ndescription: |\n  Entering the shell of the 1st pod that matches the keyword\ncommand: |\n  kubectl exec -it $(kubectl get pods | grep { kw } | head -n 1 | awk '{print $1}') -- /bin/bash\ninputs:\n  kw:\n    description: keyword to match\n    type: str\n```\n\nyou can run the command with:\n```shell\ng ./commands/pod-shell.yml --kw \"app1\"\n```\n\nOr you can store the configuration by\n```shell\ng install ./commands/pod-shell.yml\n```\n\nThen you can run the command with:\n```shell\ng pod-shell --kw \"app1\"\n```\n\n## Setup Configs and Secrets\n### Setup(CRUD) secrets\n```shell\n# to make secret token accessible to g command line\ng secrets add SOME_TOKEN\n\ng secrets list\ng secrets remove SOME_TOKEN\n```\n### Setup(CRUD) configs\n```shell\ng config add SOME_CONFIG \"us-east-1\"\ng config list\ng config remove SOME_CONFIG\n```\n\n## \ud83e\udd99 LLM in CLI \ud83d\udcbb\n> Why memorize commands when you can just ask?\n\n\nThen you can try:\n```shell\ng llm \"redub a.mp4 file with b.mp3, save to c.mp4 with fps 12\"\n```\n\nOr you can ask other things in general:\n```shell\ng llm \"explain btree to me\"\n```\n\nOr with certain flavor to the robot role\n```shell\ng llm \"explain btree to me\" \"you are a poet return everything in homer style\"\n```\n\n### \u2728 combine with other commands\nHere's some good use cases to combine with other commands\n```shell\ng llm \"shell into one of the pods: $(kubectl get pods) with keyword app1\"\n```\n\n```shell\ng llm \"please summarize the commit message for $(git diff)\"\n```\n\n```shell\ng llm \"can you explain the structure of this folder: $(ls -l)\"\n```\n\n### Choose other model\nUse the following to choose other model\n```\ng configs add GLOW_LLM\n```\n\n## Glow hub\nSetup a hub on github to manage your glow commands. Say if the hub is at `https://github.com/repo_owner/hub`\n\nExample structure of a hub:\n\n```\n./\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 glow\n\u2502   \u251c\u2500\u2500 README.md\n\u2502   \u251c\u2500\u2500 script-1.yml\n\u2502   \u251c\u2500\u2500 build-image.yml\n\u2502   \u251c\u2500\u2500 deploy-abc.yml\n```\n\n### Setup\n```shell\ng secrets add GH_PATH\ng configs add GLOW_HUB_OWNER repo_owner\ng configs add GLOW_HUB_REPO hub\n```\n\n### Install script\n```shell\ng glowhub script-1.yml\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Smart CLI tool for shell template",
    "version": "0.3.5",
    "project_urls": {
        "homepage": "https://github.com/loopsocial/glow",
        "repository": "https://github.com/loopsocial/glow"
    },
    "split_keywords": [
        "smart cli",
        " shell template"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "28db3333aa0cfa031a28c339c8cc29642024e955d59e83763b3143fcd8c84f8c",
                "md5": "0f50da6f2393c90454b503ed8089b034",
                "sha256": "f7a39bd513bc49b4c7576fe108baef5c210a902476b7fde59a18203fe63a7935"
            },
            "downloads": -1,
            "filename": "glow_cli-0.3.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0f50da6f2393c90454b503ed8089b034",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 22582,
            "upload_time": "2025-07-22T19:48:08",
            "upload_time_iso_8601": "2025-07-22T19:48:08.617183Z",
            "url": "https://files.pythonhosted.org/packages/28/db/3333aa0cfa031a28c339c8cc29642024e955d59e83763b3143fcd8c84f8c/glow_cli-0.3.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f801cc14884b1cefb7cb3f42b03f1d3927f537749256681b72a1c269a85812cc",
                "md5": "233393777989961818858266be3bfa87",
                "sha256": "d9b9f45afc66ba5029844ae7757fb2d894ebb8926036b19ab24105da8c0dfbf4"
            },
            "downloads": -1,
            "filename": "glow_cli-0.3.5.tar.gz",
            "has_sig": false,
            "md5_digest": "233393777989961818858266be3bfa87",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 19206,
            "upload_time": "2025-07-22T19:48:09",
            "upload_time_iso_8601": "2025-07-22T19:48:09.662074Z",
            "url": "https://files.pythonhosted.org/packages/f8/01/cc14884b1cefb7cb3f42b03f1d3927f537749256681b72a1c269a85812cc/glow_cli-0.3.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-22 19:48:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "loopsocial",
    "github_project": "glow",
    "github_not_found": true,
    "lcname": "glow-cli"
}
        
Elapsed time: 0.39864s