slim-cli


Nameslim-cli JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummaryAutomation of the application of software lifecycle best practices to your GitHub repositories
upload_time2025-07-23 07:54:53
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseApache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS Copyright (c) 2022 California Institute of Technology ("Caltech"). U.S. Government sponsorship acknowledged. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Caltech nor its operating division, the Jet Propulsion Laboratory, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
keywords ammos automation development nasa practice slim software
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <hr>

<div align="center">

<h1 align="center">SLIM CLI Tool</h1>

</div>

<pre align="center">Automate the application of best practices to your git repositories</pre>

<!-- Header block for project -->
[![SLIM](https://img.shields.io/badge/Best%20Practices%20from-SLIM-blue)](https://nasa-ammos.github.io/slim/)
<!-- ☝️ Add badges via: https://shields.io e.g. ![](https://img.shields.io/github/your_chosen_action/NASA-AMMOS/your_repo) ☝️ -->

<img width="1242" alt="slim-cli-demo" src="https://nasa-ammos.github.io/slim/img/tools/slim-cli-demo-apply.gif">

SLIM CLI is a command-line tool designed to infuse SLIM best practices seamlessly with your development workflow. It fetches and applies structured SLIM best practices directly into your Git repositories. The tool leverages artificial intelligence capabilities to customize and tailor the application of SLIM best practices based on your repository's specifics.

[Website](https://nasa-ammos.github.io/slim/) | [Docs/Wiki](https://nasa-ammos.github.io/slim/docs) | [Discussion Board](https://nasa-ammos.github.io/slim/forum) | [Issue Tracker](https://github.com/NASA-AMMOS/slim-cli/issues)

📺 **[View demonstration videos and detailed tutorials](https://nasa-ammos.github.io/slim/docs/tools#slim-cli)**

## Features

- **Modern CLI Interface**: List, patch, and infuse SLIM best practices into your Git repository workflow using a seamless terminal interface
- **Rich Terminal Experience**: Colored output with emojis, progress indicators, and interactive commands with dry-run mode support
- **Fetches the latest SLIM best practices** dynamically from SLIM's registry the moment they change
- **Patches and pushes**, SLIM best practices to your repository and pushes up to your Git remote (i.e. GitHub) - all automatically
- **AI Enabled**: 100+ AI models to automatically infuse best practices using AI customization for your repository
- **Extensible Architecture**: Easy-to-extend best practice system with centralized mapping and YAML configuration

## Contents

- [Features](#features)
- [Contents](#contents)
- [Quick Start](#quick-start)
  - [Requirements](#requirements)
  - [Setup Instructions via pip (Recommended for most users)](#setup-instructions-via-pip-recommended-for-most-users)
  - [Run Instructions](#run-instructions)
- [Generate Documentation](#generate-documentation)
- [Discover and Manage AI Models](#discover-and-manage-ai-models)
- [Changelog](#changelog)
- [Frequently Asked Questions (FAQ)](#frequently-asked-questions-faq)
- [Contributing](#contributing)
  - [Setup for Local Development (For Contributors)](#setup-for-local-development-for-contributors)
  - [Running Tests](#running-tests)
  - [Publishing a New Version](#publishing-a-new-version)
- [License](#license)
- [Support](#support)

## Quick Start

This guide provides a quick way to get started with our project. Please see our [docs](https://nasa-ammos.github.io/slim/docs) for a more comprehensive overview.

### Requirements

* Python 3.9+
* Git
* **Optional**: LiteLLM for enhanced AI model support (automatically installed with slim-cli)
* **Optional**: API keys for cloud AI models - if using cloud models, set the appropriate environment variable:
  ```bash
  # Use the slim models setup command to see provider-specific instructions
  slim models setup <provider>
  
  # Example: slim models setup openai
  # Example: slim models setup anthropic
  ```
* **Optional**: For local AI models (e.g., Ollama), follow the setup instructions:
  ```bash
  slim models setup ollama
  ```

### Setup Instructions via pip (Recommended for most users)

As the SLIM CLI is written in Python, you'll need Python 3.9 or later. Usually, you'll want to create a virtual environment in order to isolate the dependencies of SLIM from other Python-using applications. Install into that environment using `pip`:

    pip install slim-cli

This installs the latest SLIM CLI and its dependencies from the [Python Package Index](https://pypi.org/). The new console script `slim` is now ready for use. Confirm by running either:

    slim --version
    slim --help

To upgrade:

    pip install --upgrade slim-cli

Or select a specific version, such as `X.Y.Z`:

    pip install slim-cli==X.Y.Z

### Run Instructions

The following commands demonstrate the core SLIM CLI functionality. Use `slim --help` for a complete list of options.

**Global Options:**
- `--version`, `-v`: Show version and exit
- `--dry-run`, `-d`: Preview operations without making changes
- `--logging`, `-l`: Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  
  ```bash
  # Using long form
  slim --logging DEBUG apply --best-practice-ids readme
  
  # Using shorthand
  slim -l DEBUG apply -b readme
  
  # Preview changes without executing (dry run)
  slim -d apply -b readme -r <YOUR_GITHUB_REPO_URL>
  ```

#### Command Shorthands

SLIM CLI provides convenient shorthand options for commonly used arguments:

- `-b` for `--best-practice-ids` - Specify best practice aliases
- `-r` for `--repo-urls` - Specify repository URLs  
- `-d` for `--dry-run` - Preview changes without applying them
- `-l` for `--logging` - Set logging level
- `-m` for `--commit-message` - Custom commit message (apply-deploy and deploy commands)

**Examples:**
```bash
# Using full argument names
slim apply --best-practice-ids readme --repo-urls https://github.com/user/repo

# Using shorthands (equivalent)
slim apply -b readme -r https://github.com/user/repo

# Multiple values with shorthands
slim apply -b readme -b governance-small -r https://github.com/org/repo1 -r https://github.com/org/repo2
```

**Available Commands:**

1. **list** - List all available best practices from the SLIM registry
   ```bash
   slim list
   ```

2. **apply** - Apply best practices to git repositories
   
   **Key Options:**
   - `--best-practice-ids`, `-b`: Best practice aliases (required)
   - `--repo-urls`, `-r`: Repository URLs (cannot be used with --repo-dir)
   - `--repo-dir`: Local repository directory *[no shorthand]*
   - `--use-ai`: AI model for customization *[no shorthand]*
   - `--output-dir`: Output directory (required for docs-website) *[no shorthand]*
   
   ```bash
   # Basic usage - clone to temp folder and apply README template
   slim apply --best-practice-ids readme --repo-urls <YOUR_GITHUB_REPO_URL>
   
   # Using shorthand for best-practice-ids and repo-urls
   slim apply -b readme -r <YOUR_GITHUB_REPO_URL>
   
   # Apply multiple best practices (repeat -b for each)
   slim apply -b secrets-github -b secrets-precommit -r <YOUR_GITHUB_REPO_URL>
   
   # Apply with AI customization using cloud model
   slim apply -b readme -r <YOUR_GITHUB_REPO_URL> --use-ai anthropic/claude-3-5-sonnet-20241022
   
   # Apply with local AI model
   slim apply -b readme -r <YOUR_GITHUB_REPO_URL> --use-ai ollama/llama3.1
   
   # Apply to multiple repositories
   slim apply -b readme -r https://github.com/org/repo1 -r https://github.com/org/repo2
   
   # Apply using a list of repositories from a file
   slim apply -b governance-small --repo-urls-file repos.txt
   
   # Generate documentation website
   slim apply -b docs-website -r <YOUR_GITHUB_REPO_URL> --output-dir /path/to/docs-site --use-ai openai/gpt-4o
   ```

3. **apply-deploy** - Apply and deploy best practices in one step (creates branch and pushes to remote)
   
   **Key Options:**
   - `--best-practice-ids`, `-b`: Best practice aliases (required)
   - `--commit-message`, `-m`: Custom commit message
   - `--remote`: Remote name or URL (defaults to 'origin') *[no shorthand]*
   - `--repo-urls`, `-r`: Repository URLs
   
   ```bash
   # Basic usage
   slim apply-deploy --best-practice-ids readme --repo-urls <YOUR_GITHUB_REPO_URL>
   
   # Using shorthand options
   slim apply-deploy -b readme -r <YOUR_GITHUB_REPO_URL>
   
   # With custom commit message using shorthand
   slim apply-deploy -b readme -r <YOUR_GITHUB_REPO_URL> -m "Add comprehensive README documentation"
   
   # Multiple best practices with shorthand
   slim apply-deploy -b readme -b governance-small -r <YOUR_GITHUB_REPO_URL>
   ```

4. **deploy** - Deploy previously applied best practices (commit and push)
   
   **Key Options:**
   - `--best-practice-ids`, `-b`: Best practice aliases (required)
   - `--commit-message`, `-m`: Custom commit message
   - `--repo-dir`: Repository directory *[no shorthand]*
   - `--remote`: Remote name (defaults to 'origin') *[no shorthand]*
   
   ```bash
   # Basic usage
   slim deploy --best-practice-ids readme --repo-dir /path/to/repo --remote origin --commit-message "Apply SLIM best practices"
   
   # Using shorthand options
   slim deploy -b readme --repo-dir /path/to/repo -m "Apply SLIM best practices"
   
   # Deploy multiple best practices with shorthand
   slim deploy -b readme -b governance-small --repo-dir /path/to/repo
   ```

5. **models** - Discover and configure AI models
   ```bash
   # List all available models
   slim models list
   
   # Get model recommendations for specific tasks
   slim models recommend
   slim models recommend --task documentation --tier premium
   
   # Get setup instructions for a provider
   slim models setup anthropic
   slim models setup openai
   
   # Validate model configuration
   slim models validate openai/gpt-4o
   ```

## Generate Documentation

SLIM CLI can generate comprehensive Docusaurus documentation sites for your repositories using AI.

### Basic Usage

```bash
# Generate documentation with cloud AI (recommended)
slim apply -b docs-website -r <YOUR_GITHUB_REPO_URL> --output-dir /path/to/docs-site --use-ai openai/gpt-4o

# Generate documentation with local AI
slim apply -b docs-website -r <YOUR_GITHUB_REPO_URL> --output-dir /path/to/docs-site --use-ai ollama/llama3.1
```

### AI Model Recommendations

- **Cloud Models (Recommended)**: `openai/gpt-4o`, `anthropic/claude-3-5-sonnet-20241022`, `openai/gpt-4o-mini`
- **Local Models**: `ollama/llama3.1`, `ollama/gemma3` (lower quality, not recommended for production)

Use `slim models recommend --task documentation` to get personalized recommendations.

### Generated Content

The documentation generator creates:
- **Overview**: Project description and features
- **Installation**: Setup instructions
- **API Reference**: Auto-generated from source code
- **Development**: Workflow and coding standards
- **Contributing**: Guidelines for contributors

### Viewing Your Documentation

```bash
cd /path/to/output
npm install
npm start  # View at http://localhost:3000
```

📖 **For detailed documentation generation guidance, see the [SLIM CLI documentation guide](https://nasa-ammos.github.io/slim/docs/tools#slim-cli)**

## Discover and Manage AI Models

SLIM CLI supports 100+ AI models through LiteLLM integration. Use the `models` command to discover, configure, and validate AI models.

```bash
# List all available models
slim models list
slim models list --provider anthropic

# Get model recommendations
slim models recommend                              # Default: documentation, balanced
slim models recommend --task documentation --tier premium
slim models recommend --task code_generation --tier fast

# Get setup instructions for providers
slim models setup anthropic
slim models setup openai
slim models setup ollama

# Validate model configuration
slim models validate openai/gpt-4o
```

### Supported Providers

- **Cloud Premium**: OpenAI, Anthropic Claude, Google Gemini
- **Cloud Fast**: Groq, Together AI, Cohere, Perplexity
- **Local/Private**: Ollama, VLLM, LM Studio, GPT4All
- **Enterprise**: Azure OpenAI, AWS Bedrock, Google Vertex AI

### Environment Setup

Use `slim models setup <provider>` to see provider-specific instructions. Common examples:

```bash
# OpenAI
export OPENAI_API_KEY="sk-..."

# Anthropic Claude
export ANTHROPIC_API_KEY="sk-ant-..."

# Ollama (local models) - no API key needed
ollama serve
```

## Changelog

See our [CHANGELOG.md](CHANGELOG.md) for a history of our changes.

See our [releases page](https://github.com/NASA-AMMOS/slim-cli/releases) for our key versioned releases.

## Frequently Asked Questions (FAQ)

Questions about our project? Please see our: [FAQ](https://nasa-ammos.github.io/slim/faq)

## Contributing

Interested in contributing to our project? Please see our: [CONTRIBUTING.md](CONTRIBUTING.md). 

For a detailed understanding of the codebase architecture, including component design, data flow, and extension points, see our [ARCHITECTURE.md](ARCHITECTURE.md).

Specifically, see our section on [architecture and extensions](CONTRIBUTING.md#slim-architecture-and-extension-points) if you'd like to add support for a new best practice from SLIM or a new command. 

For guidance on how to interact with our team, please see our code of conduct located at: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)

For guidance on our governance approach, including decision-making process and our various roles, please see our governance model at: [GOVERNANCE.md](GOVERNANCE.md)

### Setup for Local Development (For Contributors)

If you're working on `slim-cli` itself, you'll want to run it in editable mode so your changes are immediately reflected.

#### Using UV (Recommended for Development)

[UV](https://github.com/astral-sh/uv) is a fast Python package manager that simplifies dependency management and virtual environment handling. It's our recommended tool for local development.

```bash
# Install UV (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone the repo
git clone https://github.com/NASA-AMMOS/slim-cli.git
cd slim-cli

# UV automatically creates and manages the virtual environment
# Install all dependencies and the package in editable mode
uv sync

# Run the CLI locally with UV
uv run slim --help
uv run slim --version

# Run tests
uv run pytest tests/
```

#### Using Traditional pip/venv

If you prefer the traditional approach:

```bash
# Clone the repo
git clone https://github.com/NASA-AMMOS/slim-cli.git
cd slim-cli

# Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install in editable mode
pip install --editable .

# Run the CLI locally
slim --help
slim --version
```

Use this method if:
- You're adding new features or fixing bugs in the CLI
- You're contributing to the SLIM project
- You want to test changes before publishing

### Running Tests

We use `pytest` for testing. For detailed information about our testing framework, test structure, and how to run tests, please refer to our [TESTING.md](TESTING.md) document.

#### With UV (Recommended)

```bash
# Run all tests
uv run pytest tests/

# Run a specific test file
uv run pytest tests/jpl/slim/test_cli.py

# Run tests with verbose output
uv run pytest -v -s
```

#### With Traditional Setup

```bash
# Install pytest (if not already installed)
pip install pytest

# Run all tests
pytest

# Run tests with verbose output
pytest -v -s
```

### Publishing a New Version

To publish a new version of SLIM CLI to the Python Package Index, typically you'll update the `VERSION.txt` file; then do:
```bash
pip install build wheel twine
python3 -m build .
twine upload dist/*
```

(Note: this can and should eventually be automated with GitHub Actions.)

## License

See our: [LICENSE](LICENSE)

## Support

Key points of contact are: [@riverma](https://github.com/riverma) and [@yunks128](https://github.com/yunks128)
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "slim-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "ammos, automation, development, nasa, practice, slim, software",
    "author": null,
    "author_email": "Rishi Verma <Rishi.Verma@jpl.nasa.gov>, Kyongsik Yun <kyongsik.yun@jpl.nasa.gov>, Sean Kelly <kelly@seankelly.biz>",
    "download_url": "https://files.pythonhosted.org/packages/69/43/781b4854bdbf1491cca2134687b7a9e4ead7569a745b5a5f6e39a4756782/slim_cli-1.1.0.tar.gz",
    "platform": null,
    "description": "<hr>\n\n<div align=\"center\">\n\n<h1 align=\"center\">SLIM CLI Tool</h1>\n\n</div>\n\n<pre align=\"center\">Automate the application of best practices to your git repositories</pre>\n\n<!-- Header block for project -->\n[![SLIM](https://img.shields.io/badge/Best%20Practices%20from-SLIM-blue)](https://nasa-ammos.github.io/slim/)\n<!-- \u261d\ufe0f Add badges via: https://shields.io e.g. ![](https://img.shields.io/github/your_chosen_action/NASA-AMMOS/your_repo) \u261d\ufe0f -->\n\n<img width=\"1242\" alt=\"slim-cli-demo\" src=\"https://nasa-ammos.github.io/slim/img/tools/slim-cli-demo-apply.gif\">\n\nSLIM CLI is a command-line tool designed to infuse SLIM best practices seamlessly with your development workflow. It fetches and applies structured SLIM best practices directly into your Git repositories. The tool leverages artificial intelligence capabilities to customize and tailor the application of SLIM best practices based on your repository's specifics.\n\n[Website](https://nasa-ammos.github.io/slim/) | [Docs/Wiki](https://nasa-ammos.github.io/slim/docs) | [Discussion Board](https://nasa-ammos.github.io/slim/forum) | [Issue Tracker](https://github.com/NASA-AMMOS/slim-cli/issues)\n\n\ud83d\udcfa **[View demonstration videos and detailed tutorials](https://nasa-ammos.github.io/slim/docs/tools#slim-cli)**\n\n## Features\n\n- **Modern CLI Interface**: List, patch, and infuse SLIM best practices into your Git repository workflow using a seamless terminal interface\n- **Rich Terminal Experience**: Colored output with emojis, progress indicators, and interactive commands with dry-run mode support\n- **Fetches the latest SLIM best practices** dynamically from SLIM's registry the moment they change\n- **Patches and pushes**, SLIM best practices to your repository and pushes up to your Git remote (i.e. GitHub) - all automatically\n- **AI Enabled**: 100+ AI models to automatically infuse best practices using AI customization for your repository\n- **Extensible Architecture**: Easy-to-extend best practice system with centralized mapping and YAML configuration\n\n## Contents\n\n- [Features](#features)\n- [Contents](#contents)\n- [Quick Start](#quick-start)\n  - [Requirements](#requirements)\n  - [Setup Instructions via pip (Recommended for most users)](#setup-instructions-via-pip-recommended-for-most-users)\n  - [Run Instructions](#run-instructions)\n- [Generate Documentation](#generate-documentation)\n- [Discover and Manage AI Models](#discover-and-manage-ai-models)\n- [Changelog](#changelog)\n- [Frequently Asked Questions (FAQ)](#frequently-asked-questions-faq)\n- [Contributing](#contributing)\n  - [Setup for Local Development (For Contributors)](#setup-for-local-development-for-contributors)\n  - [Running Tests](#running-tests)\n  - [Publishing a New Version](#publishing-a-new-version)\n- [License](#license)\n- [Support](#support)\n\n## Quick Start\n\nThis guide provides a quick way to get started with our project. Please see our [docs](https://nasa-ammos.github.io/slim/docs) for a more comprehensive overview.\n\n### Requirements\n\n* Python 3.9+\n* Git\n* **Optional**: LiteLLM for enhanced AI model support (automatically installed with slim-cli)\n* **Optional**: API keys for cloud AI models - if using cloud models, set the appropriate environment variable:\n  ```bash\n  # Use the slim models setup command to see provider-specific instructions\n  slim models setup <provider>\n  \n  # Example: slim models setup openai\n  # Example: slim models setup anthropic\n  ```\n* **Optional**: For local AI models (e.g., Ollama), follow the setup instructions:\n  ```bash\n  slim models setup ollama\n  ```\n\n### Setup Instructions via pip (Recommended for most users)\n\nAs the SLIM CLI is written in Python, you'll need Python 3.9 or later. Usually, you'll want to create a virtual environment in order to isolate the dependencies of SLIM from other Python-using applications. Install into that environment using `pip`:\n\n    pip install slim-cli\n\nThis installs the latest SLIM CLI and its dependencies from the [Python Package Index](https://pypi.org/). The new console script `slim` is now ready for use. Confirm by running either:\n\n    slim --version\n    slim --help\n\nTo upgrade:\n\n    pip install --upgrade slim-cli\n\nOr select a specific version, such as `X.Y.Z`:\n\n    pip install slim-cli==X.Y.Z\n\n### Run Instructions\n\nThe following commands demonstrate the core SLIM CLI functionality. Use `slim --help` for a complete list of options.\n\n**Global Options:**\n- `--version`, `-v`: Show version and exit\n- `--dry-run`, `-d`: Preview operations without making changes\n- `--logging`, `-l`: Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)\n  \n  ```bash\n  # Using long form\n  slim --logging DEBUG apply --best-practice-ids readme\n  \n  # Using shorthand\n  slim -l DEBUG apply -b readme\n  \n  # Preview changes without executing (dry run)\n  slim -d apply -b readme -r <YOUR_GITHUB_REPO_URL>\n  ```\n\n#### Command Shorthands\n\nSLIM CLI provides convenient shorthand options for commonly used arguments:\n\n- `-b` for `--best-practice-ids` - Specify best practice aliases\n- `-r` for `--repo-urls` - Specify repository URLs  \n- `-d` for `--dry-run` - Preview changes without applying them\n- `-l` for `--logging` - Set logging level\n- `-m` for `--commit-message` - Custom commit message (apply-deploy and deploy commands)\n\n**Examples:**\n```bash\n# Using full argument names\nslim apply --best-practice-ids readme --repo-urls https://github.com/user/repo\n\n# Using shorthands (equivalent)\nslim apply -b readme -r https://github.com/user/repo\n\n# Multiple values with shorthands\nslim apply -b readme -b governance-small -r https://github.com/org/repo1 -r https://github.com/org/repo2\n```\n\n**Available Commands:**\n\n1. **list** - List all available best practices from the SLIM registry\n   ```bash\n   slim list\n   ```\n\n2. **apply** - Apply best practices to git repositories\n   \n   **Key Options:**\n   - `--best-practice-ids`, `-b`: Best practice aliases (required)\n   - `--repo-urls`, `-r`: Repository URLs (cannot be used with --repo-dir)\n   - `--repo-dir`: Local repository directory *[no shorthand]*\n   - `--use-ai`: AI model for customization *[no shorthand]*\n   - `--output-dir`: Output directory (required for docs-website) *[no shorthand]*\n   \n   ```bash\n   # Basic usage - clone to temp folder and apply README template\n   slim apply --best-practice-ids readme --repo-urls <YOUR_GITHUB_REPO_URL>\n   \n   # Using shorthand for best-practice-ids and repo-urls\n   slim apply -b readme -r <YOUR_GITHUB_REPO_URL>\n   \n   # Apply multiple best practices (repeat -b for each)\n   slim apply -b secrets-github -b secrets-precommit -r <YOUR_GITHUB_REPO_URL>\n   \n   # Apply with AI customization using cloud model\n   slim apply -b readme -r <YOUR_GITHUB_REPO_URL> --use-ai anthropic/claude-3-5-sonnet-20241022\n   \n   # Apply with local AI model\n   slim apply -b readme -r <YOUR_GITHUB_REPO_URL> --use-ai ollama/llama3.1\n   \n   # Apply to multiple repositories\n   slim apply -b readme -r https://github.com/org/repo1 -r https://github.com/org/repo2\n   \n   # Apply using a list of repositories from a file\n   slim apply -b governance-small --repo-urls-file repos.txt\n   \n   # Generate documentation website\n   slim apply -b docs-website -r <YOUR_GITHUB_REPO_URL> --output-dir /path/to/docs-site --use-ai openai/gpt-4o\n   ```\n\n3. **apply-deploy** - Apply and deploy best practices in one step (creates branch and pushes to remote)\n   \n   **Key Options:**\n   - `--best-practice-ids`, `-b`: Best practice aliases (required)\n   - `--commit-message`, `-m`: Custom commit message\n   - `--remote`: Remote name or URL (defaults to 'origin') *[no shorthand]*\n   - `--repo-urls`, `-r`: Repository URLs\n   \n   ```bash\n   # Basic usage\n   slim apply-deploy --best-practice-ids readme --repo-urls <YOUR_GITHUB_REPO_URL>\n   \n   # Using shorthand options\n   slim apply-deploy -b readme -r <YOUR_GITHUB_REPO_URL>\n   \n   # With custom commit message using shorthand\n   slim apply-deploy -b readme -r <YOUR_GITHUB_REPO_URL> -m \"Add comprehensive README documentation\"\n   \n   # Multiple best practices with shorthand\n   slim apply-deploy -b readme -b governance-small -r <YOUR_GITHUB_REPO_URL>\n   ```\n\n4. **deploy** - Deploy previously applied best practices (commit and push)\n   \n   **Key Options:**\n   - `--best-practice-ids`, `-b`: Best practice aliases (required)\n   - `--commit-message`, `-m`: Custom commit message\n   - `--repo-dir`: Repository directory *[no shorthand]*\n   - `--remote`: Remote name (defaults to 'origin') *[no shorthand]*\n   \n   ```bash\n   # Basic usage\n   slim deploy --best-practice-ids readme --repo-dir /path/to/repo --remote origin --commit-message \"Apply SLIM best practices\"\n   \n   # Using shorthand options\n   slim deploy -b readme --repo-dir /path/to/repo -m \"Apply SLIM best practices\"\n   \n   # Deploy multiple best practices with shorthand\n   slim deploy -b readme -b governance-small --repo-dir /path/to/repo\n   ```\n\n5. **models** - Discover and configure AI models\n   ```bash\n   # List all available models\n   slim models list\n   \n   # Get model recommendations for specific tasks\n   slim models recommend\n   slim models recommend --task documentation --tier premium\n   \n   # Get setup instructions for a provider\n   slim models setup anthropic\n   slim models setup openai\n   \n   # Validate model configuration\n   slim models validate openai/gpt-4o\n   ```\n\n## Generate Documentation\n\nSLIM CLI can generate comprehensive Docusaurus documentation sites for your repositories using AI.\n\n### Basic Usage\n\n```bash\n# Generate documentation with cloud AI (recommended)\nslim apply -b docs-website -r <YOUR_GITHUB_REPO_URL> --output-dir /path/to/docs-site --use-ai openai/gpt-4o\n\n# Generate documentation with local AI\nslim apply -b docs-website -r <YOUR_GITHUB_REPO_URL> --output-dir /path/to/docs-site --use-ai ollama/llama3.1\n```\n\n### AI Model Recommendations\n\n- **Cloud Models (Recommended)**: `openai/gpt-4o`, `anthropic/claude-3-5-sonnet-20241022`, `openai/gpt-4o-mini`\n- **Local Models**: `ollama/llama3.1`, `ollama/gemma3` (lower quality, not recommended for production)\n\nUse `slim models recommend --task documentation` to get personalized recommendations.\n\n### Generated Content\n\nThe documentation generator creates:\n- **Overview**: Project description and features\n- **Installation**: Setup instructions\n- **API Reference**: Auto-generated from source code\n- **Development**: Workflow and coding standards\n- **Contributing**: Guidelines for contributors\n\n### Viewing Your Documentation\n\n```bash\ncd /path/to/output\nnpm install\nnpm start  # View at http://localhost:3000\n```\n\n\ud83d\udcd6 **For detailed documentation generation guidance, see the [SLIM CLI documentation guide](https://nasa-ammos.github.io/slim/docs/tools#slim-cli)**\n\n## Discover and Manage AI Models\n\nSLIM CLI supports 100+ AI models through LiteLLM integration. Use the `models` command to discover, configure, and validate AI models.\n\n```bash\n# List all available models\nslim models list\nslim models list --provider anthropic\n\n# Get model recommendations\nslim models recommend                              # Default: documentation, balanced\nslim models recommend --task documentation --tier premium\nslim models recommend --task code_generation --tier fast\n\n# Get setup instructions for providers\nslim models setup anthropic\nslim models setup openai\nslim models setup ollama\n\n# Validate model configuration\nslim models validate openai/gpt-4o\n```\n\n### Supported Providers\n\n- **Cloud Premium**: OpenAI, Anthropic Claude, Google Gemini\n- **Cloud Fast**: Groq, Together AI, Cohere, Perplexity\n- **Local/Private**: Ollama, VLLM, LM Studio, GPT4All\n- **Enterprise**: Azure OpenAI, AWS Bedrock, Google Vertex AI\n\n### Environment Setup\n\nUse `slim models setup <provider>` to see provider-specific instructions. Common examples:\n\n```bash\n# OpenAI\nexport OPENAI_API_KEY=\"sk-...\"\n\n# Anthropic Claude\nexport ANTHROPIC_API_KEY=\"sk-ant-...\"\n\n# Ollama (local models) - no API key needed\nollama serve\n```\n\n## Changelog\n\nSee our [CHANGELOG.md](CHANGELOG.md) for a history of our changes.\n\nSee our [releases page](https://github.com/NASA-AMMOS/slim-cli/releases) for our key versioned releases.\n\n## Frequently Asked Questions (FAQ)\n\nQuestions about our project? Please see our: [FAQ](https://nasa-ammos.github.io/slim/faq)\n\n## Contributing\n\nInterested in contributing to our project? Please see our: [CONTRIBUTING.md](CONTRIBUTING.md). \n\nFor a detailed understanding of the codebase architecture, including component design, data flow, and extension points, see our [ARCHITECTURE.md](ARCHITECTURE.md).\n\nSpecifically, see our section on [architecture and extensions](CONTRIBUTING.md#slim-architecture-and-extension-points) if you'd like to add support for a new best practice from SLIM or a new command. \n\nFor guidance on how to interact with our team, please see our code of conduct located at: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n\nFor guidance on our governance approach, including decision-making process and our various roles, please see our governance model at: [GOVERNANCE.md](GOVERNANCE.md)\n\n### Setup for Local Development (For Contributors)\n\nIf you're working on `slim-cli` itself, you'll want to run it in editable mode so your changes are immediately reflected.\n\n#### Using UV (Recommended for Development)\n\n[UV](https://github.com/astral-sh/uv) is a fast Python package manager that simplifies dependency management and virtual environment handling. It's our recommended tool for local development.\n\n```bash\n# Install UV (if not already installed)\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Clone the repo\ngit clone https://github.com/NASA-AMMOS/slim-cli.git\ncd slim-cli\n\n# UV automatically creates and manages the virtual environment\n# Install all dependencies and the package in editable mode\nuv sync\n\n# Run the CLI locally with UV\nuv run slim --help\nuv run slim --version\n\n# Run tests\nuv run pytest tests/\n```\n\n#### Using Traditional pip/venv\n\nIf you prefer the traditional approach:\n\n```bash\n# Clone the repo\ngit clone https://github.com/NASA-AMMOS/slim-cli.git\ncd slim-cli\n\n# Create and activate a virtual environment\npython3 -m venv .venv\nsource .venv/bin/activate\n\n# Install in editable mode\npip install --editable .\n\n# Run the CLI locally\nslim --help\nslim --version\n```\n\nUse this method if:\n- You're adding new features or fixing bugs in the CLI\n- You're contributing to the SLIM project\n- You want to test changes before publishing\n\n### Running Tests\n\nWe use `pytest` for testing. For detailed information about our testing framework, test structure, and how to run tests, please refer to our [TESTING.md](TESTING.md) document.\n\n#### With UV (Recommended)\n\n```bash\n# Run all tests\nuv run pytest tests/\n\n# Run a specific test file\nuv run pytest tests/jpl/slim/test_cli.py\n\n# Run tests with verbose output\nuv run pytest -v -s\n```\n\n#### With Traditional Setup\n\n```bash\n# Install pytest (if not already installed)\npip install pytest\n\n# Run all tests\npytest\n\n# Run tests with verbose output\npytest -v -s\n```\n\n### Publishing a New Version\n\nTo publish a new version of SLIM CLI to the Python Package Index, typically you'll update the `VERSION.txt` file; then do:\n```bash\npip install build wheel twine\npython3 -m build .\ntwine upload dist/*\n```\n\n(Note: this can and should eventually be automated with GitHub Actions.)\n\n## License\n\nSee our: [LICENSE](LICENSE)\n\n## Support\n\nKey points of contact are: [@riverma](https://github.com/riverma) and [@yunks128](https://github.com/yunks128)",
    "bugtrack_url": null,
    "license": "Apache License\n                                   Version 2.0, January 2004\n                                http://www.apache.org/licenses/\n        \n           TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n        \n           1. Definitions.\n        \n              \"License\" shall mean the terms and conditions for use, reproduction,\n              and distribution as defined by Sections 1 through 9 of this document.\n        \n              \"Licensor\" shall mean the copyright owner or entity authorized by\n              the copyright owner that is granting the License.\n        \n              \"Legal Entity\" shall mean the union of the acting entity and all\n              other entities that control, are controlled by, or are under common\n              control with that entity. For the purposes of this definition,\n              \"control\" means (i) the power, direct or indirect, to cause the\n              direction or management of such entity, whether by contract or\n              otherwise, or (ii) ownership of fifty percent (50%) or more of the\n              outstanding shares, or (iii) beneficial ownership of such entity.\n        \n              \"You\" (or \"Your\") shall mean an individual or Legal Entity\n              exercising permissions granted by this License.\n        \n              \"Source\" form shall mean the preferred form for making modifications,\n              including but not limited to software source code, documentation\n              source, and configuration files.\n        \n              \"Object\" form shall mean any form resulting from mechanical\n              transformation or translation of a Source form, including but\n              not limited to compiled object code, generated documentation,\n              and conversions to other media types.\n        \n              \"Work\" shall mean the work of authorship, whether in Source or\n              Object form, made available under the License, as indicated by a\n              copyright notice that is included in or attached to the work\n              (an example is provided in the Appendix below).\n        \n              \"Derivative Works\" shall mean any work, whether in Source or Object\n              form, that is based on (or derived from) the Work and for which the\n              editorial revisions, annotations, elaborations, or other modifications\n              represent, as a whole, an original work of authorship. For the purposes\n              of this License, Derivative Works shall not include works that remain\n              separable from, or merely link (or bind by name) to the interfaces of,\n              the Work and Derivative Works thereof.\n        \n              \"Contribution\" shall mean any work of authorship, including\n              the original version of the Work and any modifications or additions\n              to that Work or Derivative Works thereof, that is intentionally\n              submitted to Licensor for inclusion in the Work by the copyright owner\n              or by an individual or Legal Entity authorized to submit on behalf of\n              the copyright owner. For the purposes of this definition, \"submitted\"\n              means any form of electronic, verbal, or written communication sent\n              to the Licensor or its representatives, including but not limited to\n              communication on electronic mailing lists, source code control systems,\n              and issue tracking systems that are managed by, or on behalf of, the\n              Licensor for the purpose of discussing and improving the Work, but\n              excluding communication that is conspicuously marked or otherwise\n              designated in writing by the copyright owner as \"Not a Contribution.\"\n        \n              \"Contributor\" shall mean Licensor and any individual or Legal Entity\n              on behalf of whom a Contribution has been received by Licensor and\n              subsequently incorporated within the Work.\n        \n           2. Grant of Copyright License. Subject to the terms and conditions of\n              this License, each Contributor hereby grants to You a perpetual,\n              worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n              copyright license to reproduce, prepare Derivative Works of,\n              publicly display, publicly perform, sublicense, and distribute the\n              Work and such Derivative Works in Source or Object form.\n        \n           3. Grant of Patent License. Subject to the terms and conditions of\n              this License, each Contributor hereby grants to You a perpetual,\n              worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n              (except as stated in this section) patent license to make, have made,\n              use, offer to sell, sell, import, and otherwise transfer the Work,\n              where such license applies only to those patent claims licensable\n              by such Contributor that are necessarily infringed by their\n              Contribution(s) alone or by combination of their Contribution(s)\n              with the Work to which such Contribution(s) was submitted. If You\n              institute patent litigation against any entity (including a\n              cross-claim or counterclaim in a lawsuit) alleging that the Work\n              or a Contribution incorporated within the Work constitutes direct\n              or contributory patent infringement, then any patent licenses\n              granted to You under this License for that Work shall terminate\n              as of the date such litigation is filed.\n        \n           4. Redistribution. You may reproduce and distribute copies of the\n              Work or Derivative Works thereof in any medium, with or without\n              modifications, and in Source or Object form, provided that You\n              meet the following conditions:\n        \n              (a) You must give any other recipients of the Work or\n                  Derivative Works a copy of this License; and\n        \n              (b) You must cause any modified files to carry prominent notices\n                  stating that You changed the files; and\n        \n              (c) You must retain, in the Source form of any Derivative Works\n                  that You distribute, all copyright, patent, trademark, and\n                  attribution notices from the Source form of the Work,\n                  excluding those notices that do not pertain to any part of\n                  the Derivative Works; and\n        \n              (d) If the Work includes a \"NOTICE\" text file as part of its\n                  distribution, then any Derivative Works that You distribute must\n                  include a readable copy of the attribution notices contained\n                  within such NOTICE file, excluding those notices that do not\n                  pertain to any part of the Derivative Works, in at least one\n                  of the following places: within a NOTICE text file distributed\n                  as part of the Derivative Works; within the Source form or\n                  documentation, if provided along with the Derivative Works; or,\n                  within a display generated by the Derivative Works, if and\n                  wherever such third-party notices normally appear. The contents\n                  of the NOTICE file are for informational purposes only and\n                  do not modify the License. You may add Your own attribution\n                  notices within Derivative Works that You distribute, alongside\n                  or as an addendum to the NOTICE text from the Work, provided\n                  that such additional attribution notices cannot be construed\n                  as modifying the License.\n        \n              You may add Your own copyright statement to Your modifications and\n              may provide additional or different license terms and conditions\n              for use, reproduction, or distribution of Your modifications, or\n              for any such Derivative Works as a whole, provided Your use,\n              reproduction, and distribution of the Work otherwise complies with\n              the conditions stated in this License.\n        \n           5. Submission of Contributions. Unless You explicitly state otherwise,\n              any Contribution intentionally submitted for inclusion in the Work\n              by You to the Licensor shall be under the terms and conditions of\n              this License, without any additional terms or conditions.\n              Notwithstanding the above, nothing herein shall supersede or modify\n              the terms of any separate license agreement you may have executed\n              with Licensor regarding such Contributions.\n        \n           6. Trademarks. This License does not grant permission to use the trade\n              names, trademarks, service marks, or product names of the Licensor,\n              except as required for reasonable and customary use in describing the\n              origin of the Work and reproducing the content of the NOTICE file.\n        \n           7. Disclaimer of Warranty. Unless required by applicable law or\n              agreed to in writing, Licensor provides the Work (and each\n              Contributor provides its Contributions) on an \"AS IS\" BASIS,\n              WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n              implied, including, without limitation, any warranties or conditions\n              of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n              PARTICULAR PURPOSE. You are solely responsible for determining the\n              appropriateness of using or redistributing the Work and assume any\n              risks associated with Your exercise of permissions under this License.\n        \n           8. Limitation of Liability. In no event and under no legal theory,\n              whether in tort (including negligence), contract, or otherwise,\n              unless required by applicable law (such as deliberate and grossly\n              negligent acts) or agreed to in writing, shall any Contributor be\n              liable to You for damages, including any direct, indirect, special,\n              incidental, or consequential damages of any character arising as a\n              result of this License or out of the use or inability to use the\n              Work (including but not limited to damages for loss of goodwill,\n              work stoppage, computer failure or malfunction, or any and all\n              other commercial damages or losses), even if such Contributor\n              has been advised of the possibility of such damages.\n        \n           9. Accepting Warranty or Additional Liability. While redistributing\n              the Work or Derivative Works thereof, You may choose to offer,\n              and charge a fee for, acceptance of support, warranty, indemnity,\n              or other liability obligations and/or rights consistent with this\n              License. However, in accepting such obligations, You may act only\n              on Your own behalf and on Your sole responsibility, not on behalf\n              of any other Contributor, and only if You agree to indemnify,\n              defend, and hold each Contributor harmless for any liability\n              incurred by, or claims asserted against, such Contributor by reason\n              of your accepting any such warranty or additional liability.\n        \n           END OF TERMS AND CONDITIONS\n        \n              Copyright (c) 2022 California Institute of Technology (\"Caltech\").\n              U.S. Government sponsorship acknowledged.\n        \n              All rights reserved.\n        \n              Redistribution and use in source and binary forms, with or without modification, are permitted provided\n              that the following conditions are met:\n              * Redistributions of source code must retain the above copyright notice, this list of conditions and\n              the following disclaimer.\n              * Redistributions in binary form must reproduce the above copyright notice, this list of conditions\n              and the following disclaimer in the documentation and/or other materials provided with the\n              distribution.\n              * Neither the name of Caltech nor its operating division, the Jet Propulsion Laboratory, nor the\n              names of its contributors may be used to endorse or promote products derived from this software\n              without specific prior written permission.\n        \n              THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n              IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n              THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n              PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n              CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n              EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n              PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\n              OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n              WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\n              OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n              ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n        \n           Licensed under the Apache License, Version 2.0 (the \"License\");\n           you may not use this file except in compliance with the License.\n           You may obtain a copy of the License at\n        \n               http://www.apache.org/licenses/LICENSE-2.0\n        \n           Unless required by applicable law or agreed to in writing, software\n           distributed under the License is distributed on an \"AS IS\" BASIS,\n           WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n           See the License for the specific language governing permissions and\n           limitations under the License.",
    "summary": "Automation of the application of software lifecycle best practices to your GitHub repositories",
    "version": "1.1.0",
    "project_urls": {
        "Homepage": "https://github.com/SLIM/slim-cli",
        "Issues": "https://github.com/SLIM/slim-cli/issues"
    },
    "split_keywords": [
        "ammos",
        " automation",
        " development",
        " nasa",
        " practice",
        " slim",
        " software"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a06a0c91e45f66911716e905957dbd11d9033d9d07c661bfdff3c54ab52fad7e",
                "md5": "3fc8f65904a7a5684f7145983a34fdd7",
                "sha256": "2a593f34ffd6120860900edc1136e202b76666c8d15c953945450a6f70f14ffa"
            },
            "downloads": -1,
            "filename": "slim_cli-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3fc8f65904a7a5684f7145983a34fdd7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 126450,
            "upload_time": "2025-07-23T07:54:51",
            "upload_time_iso_8601": "2025-07-23T07:54:51.865750Z",
            "url": "https://files.pythonhosted.org/packages/a0/6a/0c91e45f66911716e905957dbd11d9033d9d07c661bfdff3c54ab52fad7e/slim_cli-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6943781b4854bdbf1491cca2134687b7a9e4ead7569a745b5a5f6e39a4756782",
                "md5": "c69e24e1d75d45c5361a6d1ec3db1cc0",
                "sha256": "ae5cb5e58ce256dc528258edd1abefc19790687d17e9e71293240263d01f3209"
            },
            "downloads": -1,
            "filename": "slim_cli-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c69e24e1d75d45c5361a6d1ec3db1cc0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 158765,
            "upload_time": "2025-07-23T07:54:53",
            "upload_time_iso_8601": "2025-07-23T07:54:53.240065Z",
            "url": "https://files.pythonhosted.org/packages/69/43/781b4854bdbf1491cca2134687b7a9e4ead7569a745b5a5f6e39a4756782/slim_cli-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 07:54:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SLIM",
    "github_project": "slim-cli",
    "github_not_found": true,
    "lcname": "slim-cli"
}
        
Elapsed time: 1.05339s