Skip to content
Merged
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
24 changes: 13 additions & 11 deletions docs/reference/experiments.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,24 @@ The Slack CLI has an experiment (`-e`) flag behind which we put features current

The following is a list of currently available experiments. We'll remove experiments from this page if we decide they are no longer needed or once they are released, in which case we'll make an announcement about the feature's general availability in the [developer changelog](https://docs.slack.dev/changelog).

* `bolt-install`: enables creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
* `slack create` and `slack init` now set manifest source to "app settings" (remote) for Bolt JS & Bolt Python projects ([PR#96](https://github.com/slackapi/slack-cli/pull/96)).
* `slack run` and `slack install` support creating and installing Bolt Framework apps that have the manifest source set to "app settings (remote)" ([PR#111](https://github.com/slackapi/slack-cli/pull/111), [PR#154](https://github.com/slackapi/slack-cli/pull/154)).
- `bolt-install`: enables creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
- `slack create` and `slack init` now set manifest source to "app settings" (remote) for Bolt JS & Bolt Python projects ([PR#96](https://github.com/slackapi/slack-cli/pull/96)).
- `slack run` and `slack install` support creating and installing Bolt Framework apps that have the manifest source set to "app settings (remote)" ([PR#111](https://github.com/slackapi/slack-cli/pull/111), [PR#154](https://github.com/slackapi/slack-cli/pull/154)).
- `charm`: shows beautiful prompts ([PR#348](https://github.com/slackapi/slack-cli/pull/348)).

## Experiments changelog

Below is a list of updates related to experiments.

* **December 2025**: Concluded the `read-only-collaborators` experiment with full support introduced to the Slack CLI. See the changelog announcement [here](https://docs.slack.dev/changelog/2025/12/04/slack-cli).
* **June 2025**:
* Updated the `slack run` command to create and install new and existing Bolt framework projects configured with app settings as the source of truth (remote manifest).
* Added support for creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest). New Bolt projects are now configured to have apps managed by app settings rather than by project. When running a project for local development, the app and bot tokens are automatically set, and no longer require developers to export them as environment variables. Existing Bolt projects will continue to work with a project (local) manifest, and linking an app from app settings will configure the project to be managed by app settings (remote manifest). In an upcoming release, support for installing and deploying apps managed by app settings will be implemented.
* **May 2025**: Added the experiment `bolt-install` to enable creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
* **February 2025**: Added full Bolt framework support to the Slack CLI and removed the features from behind the experiment flag. See the changelog announcement [here](https://docs.slack.dev/changelog/2025/02/27/slack-cli-release).
* **August 2024**: Added the `bolt` experiment for the `slack create` command.
* **January 2024**: Added the experiment `read-only-collaborators`.
- **February 2026**: Added the `charm` experiment.
- **December 2025**: Concluded the `read-only-collaborators` experiment with full support introduced to the Slack CLI. See the changelog announcement [here](https://docs.slack.dev/changelog/2025/12/04/slack-cli).
- **June 2025**:
- Updated the `slack run` command to create and install new and existing Bolt framework projects configured with app settings as the source of truth (remote manifest).
- Added support for creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest). New Bolt projects are now configured to have apps managed by app settings rather than by project. When running a project for local development, the app and bot tokens are automatically set, and no longer require developers to export them as environment variables. Existing Bolt projects will continue to work with a project (local) manifest, and linking an app from app settings will configure the project to be managed by app settings (remote manifest). In an upcoming release, support for installing and deploying apps managed by app settings will be implemented.
- **May 2025**: Added the experiment `bolt-install` to enable creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
- **February 2025**: Added full Bolt framework support to the Slack CLI and removed the features from behind the experiment flag. See the changelog announcement [here](https://docs.slack.dev/changelog/2025/02/27/slack-cli-release).
- **August 2024**: Added the `bolt` experiment for the `slack create` command.
- **January 2024**: Added the experiment `read-only-collaborators`.

## Feedback

Expand Down
8 changes: 6 additions & 2 deletions internal/experiment/experiment.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,24 @@ const (
// manage their app manifest on app settings (remote manifest).
BoltInstall Experiment = "bolt-install"

// Charm experiment enables beautiful prompts.
Charm Experiment = "charm"

// Placeholder experiment is a placeholder for testing and does nothing... or does it?
Placeholder Experiment = "placeholder"
)

// AllExperiments is a list of all available experiments that can be enabled
// Please also add here πŸ‘‡
// AllExperiment is a list of all available experiments that can be enabled
var AllExperiments = []Experiment{
BoltFrameworks,
BoltInstall,
Charm,
Placeholder,
}

// Please also add here πŸ‘‡
// EnabledExperiments is a list of experiments that are permanently enabled
// Please also add here πŸ‘‡
var EnabledExperiments = []Experiment{
BoltFrameworks,
BoltInstall,
Expand Down
1 change: 1 addition & 0 deletions internal/experiment/experiment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func Test_Includes(t *testing.T) {

// Test expected experiments
require.Equal(t, true, Includes(Experiment("bolt")))
require.Equal(t, true, Includes(Experiment("charm")))

// Test invalid experiment
require.Equal(t, false, Includes(Experiment("should-fail")))
Expand Down
Loading