Soulver X Series (X1, X2…)

The quest for a more perfect Soulver

What is the Soulver X Series?

We're considering embarking on a multi-year R&D project whose mission is to:

  • Explore cool new ideas for Soulver

  • Seek out new forms & new workflows

  • Boldly go where no notepad calculator has gone before 🖖

Soulver X1

We've already published a new document-based Mac app called Soulver X1 on GitHub.

X1 includes some very cool implementations of our top #3 feature requests, including:

X Series Features

1. Tabs

Documents in Soulver X1 start with a single tab, and you can add more by clicking the + button in the right of the tab bar.

Renaming tabs

Double click on the title of a tab to give it an alternative name. Alternatively, control-click on the tab and choose "Rename".

Deleting tabs

When you hover over a tab, click the x button to delete. Alternatively, control-click on the tab and choose "Delete"

Tabs are a work in progress feature.

You cannot rearrange tabs (yet), and adding too many tabs in a single document does not work correctly.

2. The header

The header is a dedicated sheet for defining variables, units, functions, and web values that can be used across all tabs in your document.

3. Cross-tab variables

Declare variables for your document in the header the same way you would declare local variables.

For example:

my variable = 123

my variable will be available across all your sheets

Your tabs can only reference variables, but cannot modify their definition such that it will apply to other sheets in the document.

4. Equivalence units

An equivalence unit is defined in terms of an existing unit.

Define a new equivalence unit in the header using (for example):

1 watermelon = 10 lb

The watermelon can now be used as a unit of mass across your tabs.

Soulver X1 automaticaly pluralises your new unit for you (in English).

So in this example, both "watermelons" will be recognized as a valid unit name, even though the definition was "watermelon".

5. Generic units

An equivalence unit is an entirely new unit type, not defined in terms of an existing unit.

Define a new generic unit in the header using (for example):

operation = new unit

The operation unit can now be used across your tabs (including in rates):

6. Custom functions


A function is a handy phrase that takes an input and returns an output. In Soulver X1, you can use (almost) any syntax for a function, including:

C-style: doSomething(123)

Swift-style: doSomething(with: 123)

Natural language: do something with 123

To create a new custom function (in the header)

  • Click Define New > Function

Choosing a function name:

  • Define your function using an example of how you might use the function in practice.

  • Choose any parameters (so long as they match the "type" of parameter that you expect for your implementation, like money, time, plain decimal numbers, etc).

Implementing your function:

  • Implement the function in a dedicated Soulver sheet. Any parameters will be injected as yellow tokens.

  • Hover over a parameter token to see what parameter it refers to in the declaration.

  • The last line of the implementation sheet will be returned as the function's final value.

Using your function

Use your function with other input values across all of your sheets

7. Web values (connecting to JSON APIs)

To create a new web value (in the header)

  • Click Define New > Web Value

To connect to a particular data point in a JSON data feed

  • Paste in a URL to a JSON data feed, and then simply click on the data point you wish to connect to

Using a web value

  • Your web value will be assigned a variable name (by default, matching its description in the JSON feed)

  • You're welcome to change the variable name to something else

Updating a web value

  • Your web value will be automatically updated in the background with the frequency that you specified during setup

Editing a web value

  • Double-click the yellow web value token in the header to specify a different data point, or change the update frequency

Soulver X Series File Type

Soulver X series apps use a different document type (.slvrx) from Soulver.

This is to support the new features we're building and experimenting with.

Soulvex X (.slvx) files cannot be edited by Soulver 3 for Mac, iOS & iPad.

Soulver X Series Sponsorship

If you're a long time user (or Soulver mega-fan), and are excited by this work, you might consider sponsoring our mission on GitHub.

Also, as a sponsor, you'll get access to the latest X series prototype (X2, X3, etc) with more never-before-seen features in the notepad calculator domain.

Our (very) small team would appreciate the support, and we'll be able to dedicate more resources to this kind of advanced notepad calculator R&D.

Last updated