Project Skeleton
This guide outlines the purpose of each file in the CLI.
linode-cli
Contains all the logic for the linode-cli executable.
| File | Purpose | 
| 
 | Contains the main entrypoint for the CLI; routes top-level commands to their corresponding functions | 
| 
 | Calls the project entrypoint in __init__.py | 
| 
 | Contains logic for building API request bodies, making API requests, and handling API responses/errors | 
| 
 | Contains miscellaneous logic for registering common argparse arguments and loading the OpenAPI spec | 
| 
 | Contains the CLI class, which routes all the logic baking, loading, executing, and outputting generated CLI commands | 
| 
 | Contains all the logic for generating shell completion files (linode-cli completion) | 
| 
 | Contains various miscellaneous helpers, especially relating to string manipulation, etc. | 
| 
 | The page to show users in their browser when the OAuth workflow is complete. | 
| 
 | Contains all the logic for handling generated command outputs, including formatting tables, filtering JSON, etc. | 
| 
 | Contains hardcoded output override functions for select CLI commands. | 
baked
This directory contains logic related to parsing, processing, serializing, and executing the Linode OpenAPI spec.
| File | Purpose | 
| 
 | Contains imports for certain classes in this package | 
| 
 | Contains logic for colorizing strings in CLI outputs (deprecated) | 
| 
 | Contains the logic to parse an OpenAPIOperation from the OpenAPI spec and generate/execute a corresponding argparse parser | 
| 
 | Contains various logic related to parsing and translating text between markup languages. | 
| 
 | Contains the OpenAPIRequest and OpenAPIRequestArg classes | 
| 
 | Contains the OpenAPIResponse and OpenAPIResponseAttr classes | 
configuration
Contains all logic related to the configuring the Linode CLI.
| File | Purpose | 
| 
 | Contains imports for certain classes in this package | 
| 
 | Contains all the logic for the token generation OAuth workflow | 
| 
 | Contains all the logic for loading, updating, and saving CLI configs | 
| 
 | Contains various config-related helpers | 
documentation
Contains the logic and templates to generate documentation for the Linode CLI.
| File | Purpose | 
| 
 | Contains the template files used to dynamically generate documentation pages | 
| 
 | Contains imports for certain classes in this package | 
| 
 | Contains the logic to render and write documentation files | 
| 
 | Contains all dataclasses used to render the documentation templates | 
plugins
Contains the default plugins and plugin SDK for this project.
| File | Purpose | 
| 
 | Contains imports for certain classes in this package | 
| 
 | Contains the shared wrapper that allows plugins to access CLI functionality | 
docs
Contains the Sphinx configuration used to render the Linode CLI’s documentation.
| File | Purpose | 
| 
 | Contains non-generated documentation templates for the Linode CLI’s commands. | 
| 
 | Contains documentation templates for Linode CLI’s development guide. | 
| 
 | Contains the Sphinx configuration for the Linode CLI’s documentation | 
| 
 | The index/root document for the Linode CLI’s documentation. | 
| 
 | Contains targets to render the documentation for this project | 
Next Steps
To continue to the next step of this guide, continue to the Testing page.