In practice it can be anything though. It just gets thrown in one of the hashing functions. They way they describe it:
user-key = SCRYPT( user-name, user-secret )
site-key = HMAC-SHA-256( site-name . site-counter, user-key )
site-password = PW( site-template, site-key )
Which is kinda interesting, they mention site-counter and site-template. The counter indicates you can set it to a different value to get a different password for that site. But then obviously every time you want to recall that password, you have to set the site counter correctly. I guess the app will remember this, but the web version obviously doesn't. But the gimmick is that it doesn't store anything, but it seems for the app to work it does need to store the settings to generate your password.
And also there is a site-template, which seems to hold various ways to generate passwords. Long, medium, short, pin, etc etc. With or without special symbols. It even mentions 'saved personal password' so I guess it can save custom passwords? Hopefully encrypted though.
That sorta addresses the concerns I have. But obviously that means you need the app, the website doesn't do all those extra things. And if you loose the app you loose your custom site counter and template.
Also, the CLI version seems to happily store the username and secret on your pc? Or at least lets you read it from a file, so...
(I haven't actually used the app, just going through some docs and source code here)
See my response a few comments down this thread. I found the counter and password-template too. I don't have an iphone so I can't test the app, but I very much think this app stores the 'settings' (counter, template) to generate the password. Based on what the api and CLI can do.... it has to, surely. It also has the ability to retrieve a custom password.
Of course the webapp in the link doesn't do all of that. You're stuck with 1 password in 1 format. Unless you change your secret and then all your passwords change.