Bixby Developer Center


20J Capsule SDK Release Notes

Updated: September 9, 2020

New Developer Console (previously Teams & Capsules)

We've revamped Teams & Capsules, which is now called Bixby Developer Console. The Developer Console has a cleaner look and improved navigation. We've kept all of the existing features, and more updates are coming in the future. Learn more about the new Developer Console.

New Bixby Views Library for Android Display Themes

In continued preparation for Bixby's migration to match Samsung's OneUI, the Bixby Views components have been updated to match the available Android display themes, such as light and dark mode.

As such, we've introduced a new Bixby Views Sketch library, with all the updated components and specifications to match the upcoming new look-and-feel. The previous version of the Bixby Views Sketch library will be deprecated, and eventually removed.

All designs for new and existing capsules will eventually need to be updated to the new Sketch library.

Updates to Optional Template Components

To better refine how optional fragments/strings in dialog templates behave, we are changing the current behavior.


Fragments and template strings that behave optionally are:

If an optional block contains a non-optional fragment or template that returns an empty string, the block will fail. Take, for example, the following template and corresponding dialog:

template ("I'm looking for the best route [to #{value(location)}]")
dialog (Value) {
match: Location (this)
if (exists (this) && not empty ( {
template ("#{raw (}")
} else {
template ("")

In the example above, if Bixby cannot derive, the whole block fails and returns the empty string, resulting in the following dialog:

"I'm looking for the best route"

If can be derived, the result is something like this instead:

"I'm looking for the best route to San Jose"

However, if an optional block contains an optional component that returns an empty string, the block will not fail. Take this template, for example:

template ("Searching for #{value(search.color)} cars for sale")

Notice that there are no optional braces in the template above. If the fragment #{value(search.color)} returned the empty string and the new allow-empty-fragments-in-dialog-templates runtime flag is set to false, the whole template would return the empty string; however, if the flag is true, the final result is:

"Searching for cars for sale"

This behavior also holds for agreement expressions as well.

This runtime flag is enabled by default in runtime version 8.

Deprecation Stages (learn more)

  • Stage 1: R20J
  • Stage 2: R20M
  • End of Life: None

Multiple RSS Support for Podcast Template

The Podcast Capsule Template now supports multiple RSS feeds. You can also tag feeds to help users play specific feeds.

Update to Max Line Limit for Slots in 'title-area'

Within Bixby Views, we've updated the maximum number of lines displayed per slot within title-area. This limit varies varies by device, and you can see this new behavior in the title-area interactive demo.

New Permissions and Submissions Troubleshooting Page

If you are having trouble submitting or executing a capsule, you can now check the Troubleshooting Common Issues with Permissions and Submissions topic for help with diagnosing your issue.