Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,15 @@ Agent Skills are specialized instruction sets that enhance AI coding assistants'

## Available skills

The main skill is [`developing-with-streamlit`](developing-with-streamlit/SKILL.md), which routes to specialized sub-skills:
There are two skills:

- [`developing-with-streamlit`](developing-with-streamlit/SKILL.md) for building apps, which routes to specialized sub-skills
- [`deploying-streamlit-community-cloud`](deploying-streamlit-community-cloud/SKILL.md) for deploying apps to Streamlit Community Cloud

### Developing with Streamlit sub-skills

| Skill | Description |
|-------|-------------|
| ------- | ------------- |
| [building-streamlit-chat-ui](developing-with-streamlit/skills/building-streamlit-chat-ui/) | Chat interfaces, chatbots, AI assistants |
| [building-streamlit-dashboards](developing-with-streamlit/skills/building-streamlit-dashboards/) | KPI cards, metrics, dashboard layouts |
| [building-streamlit-multipage-apps](developing-with-streamlit/skills/building-streamlit-multipage-apps/) | Multi-page app structure and navigation |
Expand Down Expand Up @@ -54,7 +59,7 @@ Or add skills directly to your project's `.cursor/skills/` directory.
### Other AI Assistants

| Agent | Skills Folder | Documentation |
|-------|---------------|---------------|
| ------- | --------------- | --------------- |
| OpenAI Codex | `.codex/skills/` | [Codex Skills Docs](https://developers.openai.com/codex/skills/) |
| Gemini CLI | `.gemini/skills/` | [Gemini CLI Skills Docs](https://geminicli.com/docs/cli/skills/) |
| GitHub Copilot | `.github/skills/` | [Copilot Agent Skills Docs](https://docs.github.com/en/copilot/concepts/agents/about-agent-skills) |
Expand Down
81 changes: 81 additions & 0 deletions deploying-streamlit-community-cloud/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
name: deploying-streamlit-community-cloud
description: Deploys Streamlit apps to Streamlit Community Cloud using the Streamlit CLI. Use when publishing an app or turning a local project into a GitHub repo for deployment.
---
Comment on lines +1 to +4
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing license field in frontmatter. All other skills in this repository include license: Apache-2.0 on line 4 of their frontmatter. For consistency with the established convention, add this field to match the pattern seen in all sub-skills under developing-with-streamlit/skills/.

Copilot uses AI. Check for mistakes.

# Deploying to Streamlit Community Cloud

Use this skill to deploy a Streamlit app to Streamlit Community Cloud via the
`streamlit cloud deploy` CLI command (Streamlit 1.54+).

## When to activate

- Publishing a Streamlit app to Community Cloud
- Converting a local project into a GitHub repo for deployment
- Triggering a deploy from the CLI

## Requirements

- **Streamlit 1.54+** (for `streamlit cloud deploy`)
- A GitHub repo with your app code
- A Community Cloud account connected to GitHub
- `gh` CLI installed and authenticated if a repo needs to be created

## Deployment flow

### 1) Verify Streamlit version

```bash
streamlit version
```

If `streamlit cloud deploy` is missing or Streamlit is <1.54, **tell the user
explicitly that they need Streamlit 1.54 for this skill to work** and ask them
to upgrade before continuing.
Comment on lines +32 to +34
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version check using streamlit version will return version information, but the skill doesn't provide guidance on how to parse and compare the version number to determine if it's >= 1.54. The AI agent needs explicit instructions on how to extract the version number from the command output and compare it. Consider adding a note like: "Parse the version output and verify it's 1.54.0 or higher before proceeding."

Suggested change
If `streamlit cloud deploy` is missing or Streamlit is <1.54, **tell the user
explicitly that they need Streamlit 1.54 for this skill to work** and ask them
to upgrade before continuing.
Parse the command output to extract the Streamlit version string (for example
`X.Y.Z`) and verify that it is **1.54.0 or higher** before proceeding.
If `streamlit cloud deploy` is missing or the parsed Streamlit version is
lower than 1.54.0, **tell the user explicitly that they need Streamlit 1.54
or newer for this skill to work** and ask them to upgrade before continuing.

Copilot uses AI. Check for mistakes.

### 2) Check whether the current directory is a GitHub repo

```bash
git rev-parse --is-inside-work-tree
git remote -v
```

If the repo has a GitHub remote (URL contains `github.com`), run:
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The check on line 43 looks for github.com in the remote URL, but GitHub Enterprise users may have different domain names (e.g., github.company.com). Consider broadening the check or adding a note about GitHub Enterprise compatibility, or prompt the user to confirm whether their remote is a valid GitHub remote.

Copilot uses AI. Check for mistakes.

```bash
streamlit cloud deploy
```

### 3) If not a GitHub repo, offer to create one

If the current directory is not a git repo, or it has no GitHub remote, offer
to initialize and push it to the user's GitHub account. Then:

```bash
git init
git add -A
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The git add -A command will stage all files including those that should typically be ignored (e.g., .env, secrets.toml, __pycache__, .venv). Before running this command, the workflow should ensure a .gitignore file exists with appropriate Streamlit and Python exclusions. Consider adding a step to check for and create a .gitignore file if it doesn't exist, or warn the user to review staged files before committing.

Copilot uses AI. Check for mistakes.
git commit -m "Initial commit"
gh auth status
gh repo create <repo-name> --source=. --remote=origin --push
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The gh repo create command uses a placeholder <repo-name> without guidance on how to determine or prompt for the repository name. The AI agent needs clear instructions on how to derive or ask for this value. Consider adding explicit guidance such as: "Prompt the user for a repository name, or suggest using the current directory name as the default."

Copilot uses AI. Check for mistakes.
```

Notes:

- If `gh auth status` fails, run `gh auth login` first.
- Use `--public` or `--private` depending on the user's preference.
Comment on lines +59 to +65
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The note on line 65 mentions using --public or --private flags for the gh repo create command, but these flags are not included in the actual command on line 59. The instruction should either include these flags in the command with a placeholder (e.g., gh repo create <repo-name> --source=. --remote=origin --push --public) or clarify that the AI should determine and add the appropriate flag based on user preference before running the command.

Copilot uses AI. Check for mistakes.
- If there are already commits, skip the initial commit step.
Comment on lines +54 to +66
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow sequence could fail if the directory already has uncommitted changes or existing commits. The instructions should check for existing commits before running git commit, as noted in line 66, but this check should happen before attempting the commit command on line 57. Consider reordering the flow to check git log or git rev-parse HEAD first to determine if commits already exist, and only run git init, git add -A, and git commit if the repository is truly uninitialized.

Copilot uses AI. Check for mistakes.

Once the GitHub repo is created and pushed, run:

```bash
streamlit cloud deploy
```

## What the command does

`streamlit cloud deploy` opens the Streamlit Community Cloud deploy page with
the repository, branch, and app file pre-filled for the current GitHub repo.
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The instructions mention that streamlit cloud deploy will pre-fill "the repository, branch, and app file" but don't explain how the command determines which app file to use. This could be unclear for projects with multiple Python files. Consider adding guidance on how the command selects the app file (e.g., does it use streamlit_app.py by default, or does it prompt the user?).

Suggested change
the repository, branch, and app file pre-filled for the current GitHub repo.
the repository and branch pre-filled for the current GitHub repo. For the app
file, Streamlit tries to detect a likely entrypoint (for example, a
`streamlit_app.py` or `app.py` in the repo root). If multiple candidates are
found, or none can be confidently detected, the deploy UI prompts the user to
select which Python file to run.

Copilot uses AI. Check for mistakes.

## References

- [Deploy your app on Community Cloud](https://docs.streamlit.io/deploy/streamlit-community-cloud/deploy-your-app/deploy)
Loading