I've been using SPI on Teensy's quite extensively, because I've got a spacecraft EGSE (Electronics Ground Support Equipment) that talks to our MAGIC magnetometer using SPI, since for simplicity the only digital electronics on our card is the ADC, and the spacecraft talks SPI directly to our card.
MAGIC on CINEMA-TRIO at Imperial College LondonLooking at the ATTiny85 datasheet, it doesn't look that involved to get the USI SPI working, although as has been said, it'll have limited functionality with so few pins available on the device overall. The datasheet has some example code, admittedly in assembler, but it's probably better turned into some C for a "proper" Arduino library, if only for clarity. I doubt it would end up being significanly larger than hand written assembler, or not enough to worry about.
When we use SPI, we connect a PC to the Teensy using the USB, and amazingly that would still be possible here, since the USB interface uses PB3 and PB4, whereas the SPI would connect to PB0, PB1 and PB2 (MISO,MOSI, and SCLK respectively). Of course, as others said, most people don't use SPI with something like a DigiSpark, because it's heavier on pin usage than I2C, but there are devices out there which are not available in I2C versions, so occasionally SPI is likely to be needed. With a dedicated SPI link, the SS line isn't necessary, so you've still got three lines to do other stuff with, although more than one serial protocol is not an option, without resorting to bit banging.
The DigiSpark couldn't take our EGSE program however, since it only just fits on the Flash of a 32K Teensy 2 (I'm switching over to using Teensy 2+'s for that reason), partly because it includes
Bitlash, so we can write scripts on it. A very heavily cut down version would probably work though, and I'm tempted to try it, simply out of curiosity! I may have to borrow one of the lab's small scopes to bring home, so I can watch the SPI lines and experiment next weekend.
Initially I think I'd probably only bother to get the Master code working, since I've only ever bothered to use Slave mode as an experiment, with two boards talking to each other. Worth a fiddle I think (unless one of the other posters in this thread has already succeeded).
Has anyone tried to use USI as a serial interface? (or for that matter, does the soft serial library work on a DigiSpark?)