{"id":16778434,"url":"https://github.com/kaarthik108/snowdev","last_synced_at":"2025-10-04T02:24:52.185Z","repository":{"id":190049521,"uuid":"677855236","full_name":"kaarthik108/snowdev","owner":"kaarthik108","description":"snowdev: A DevOps toolkit for streamlined Snowflake deployments via Snowpark","archived":false,"fork":false,"pushed_at":"2023-09-24T05:39:59.000Z","size":6125,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-21T11:21:46.465Z","etag":null,"topics":["ai","devops","llm","snowflake","snowpark"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaarthik108.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-12T21:38:23.000Z","updated_at":"2024-12-22T20:50:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"72a1bae1-d48b-4981-80d2-9a35f2b3f80e","html_url":"https://github.com/kaarthik108/snowdev","commit_stats":null,"previous_names":["kaarthik108/snowdev"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/kaarthik108/snowdev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaarthik108%2Fsnowdev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaarthik108%2Fsnowdev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaarthik108%2Fsnowdev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaarthik108%2Fsnowdev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaarthik108","download_url":"https://codeload.github.com/kaarthik108/snowdev/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaarthik108%2Fsnowdev/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278254666,"owners_count":25956644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","devops","llm","snowflake","snowpark"],"created_at":"2024-10-13T07:27:41.734Z","updated_at":"2025-10-04T02:24:52.170Z","avatar_url":"https://github.com/kaarthik108.png","language":"Python","readme":"# SnowDev - Snowpark Devops\n\n[![Documentation](https://img.shields.io/badge/documentation-view-blue)](docs/quickstart.md) [![Downloads](https://static.pepy.tech/badge/snowdev)](https://pepy.tech/project/snowdev)\n\nSnowDev is a command-line utility designed for deploying various components related to Snowflake such as UDFs, stored procedures, and Streamlit applications using **Snowpark**. This tool streamlines tasks like initializing directories, local testing, uploading, and auto create components code using AI.\n\n## Features\n\nSnowDev currently supports the following components:\n\n- **UDF (User-Defined Function)**\n- **Stored Procedure**\n- **Streamlit**\n- **Tasks**\n\n\n## Setup\n\n```bash\n pyenv install 3.10.0 \n pyenv local 3.10.0 \n pip install snowdev or poetry add snowdev\n snowdev init\n```\n\n## Usage\n\n``` bash\nsnowdev \u003ccommand\u003e [options]\n```\n\n## Commands\n\n### `init`\n- **Description**: Initializes the directory structure for the deployment.\n- **Usage**: `snowdev init`\n\n### `test`\n- **Description**: Test the deployment locally.\n- **Usage**: `snowdev test --udf predict_sentiment`\n\n### `deploy`\n- **Description**: Deploys the specified components, registers and tests using temp function before deploying to prod\n- **Usage**: `snowdev deploy --udf predict_sentiment`\n\n### `upload`\n- **Description**: Uploads specified items such as static content.\n- **Usage**: `snowdev upload --upload \u003cupload_item\u003e`\n\n### `add`\n- **Description**: Adds a package and optionally uploads it to stage.\n- **Usage**: `snowdev add --package \u003cpackage_name\u003e`\n\n### `new`\n- **Description**: Adds a new component.\n- **Usage**: `snowdev new --sproc \"test_script\"`\n\n### `ai`\n- **Description**: Interact with AI components and embeddings. It can also help in creating new AI components code based on the description, \n  make sure to have executed `snowdev ai --embed` to generate embeddings.\n- **Usage**: `snowdev ai --streamlit \"Want to see a bar chart on the order table\"`\n\n## Options\n\n- `--udf \u003cudf_name\u003e`: Name or identifier for the UDF you want to deploy.\n- `--sproc \u003csproc_name\u003e`: Name or identifier for the Stored Procedure you want to deploy.\n- `--streamlit \u003cstreamlit_name\u003e`: Name or identifier for the Streamlit application you want to deploy. (This is still in PrPr)\n- `--task \u003ctask_name\u003e`: Name of the snowflake task you want to deploy.\n- `--upload \u003cupload_item\u003e`: Specifies what to upload. Currently supported options: `static`.\n- `--package \u003cpackage_name\u003e`: Specifies the name of the package to zip and upload to the static folder.\n- `--embed`: Used with the `ai` command to run embeddings.\n\n## Requirements\n\n- **Python**: `\u003e=3.10.0, \u003c3.11.0`\n- **Dependencies**: \n  - `\"snowflake-snowpark-python\" = { version = \"1.5.1\", extras = [\"pandas\"] }`\n\n\n## Notes\n- For the `ai` command, when specifying a component type (using --udf, --sproc, or --streamlit), ensure that the respective name or identifier is provided.\n- When using the `add` command, the user will be prompted to decide if they want to upload the zip package to stage.\n- The AI functionality in SnowDev is optimized with GPT-4, ensuring a better relevance in code suggestions and interactions.\n\n\n## Roadmap\n\n- [x] Support for UDFs and Stored Procedures\n- [x] Support for Streamlit\n- [x] AI interactions for embedding and suggestions\n- [x] Support for snowflake Tasks\n- [x] AI to add the packages to toml file\n- [ ] Support for multiple python scripts in stored procedures\n- [ ] Use AI to modify existing code for optimization\n- [ ] Adding more granularity for AI commands\n\n\n\n## Contributions\n\nFeel free to contribute to SnowDev by submitting pull requests or opening issues on the project's GitHub repository.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaarthik108%2Fsnowdev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaarthik108%2Fsnowdev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaarthik108%2Fsnowdev/lists"}