Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


0.3.0 • Public • Published


A command line utility to create a multipage static website from a Ulysses HTML export


  1. Open a terminal and type npm install bloom-cli -g to install bloom-cli globally, letting you bloom from wherever you are.
  2. When you're exporting HTML from Ulysses, choose "Full Page" format. Save it somewhere you can navigate to in the terminal / command prompt (I usually make a folder and save it in there, then open a terminal at that folder).
  3. Navigate (via terminal / prompt) to the folder where you saved your HTML file - usually it's named index.html
  4. Type bloom in your terminal.
  5. Answer the questions (like "What is the name of your project", etc.) and an index page will pop up in a browser with your linked files all ready for you to click.
  6. If you chose to upload via built-in FTP, navigate to the new location and check out your new site. If you want to upload yourself, throw the contents of the index-bloomed folder into your favorite FTP program. Either way, bloom-cli will pop open a local index page for you to peruse.


Take advantage of Ulysses' styles marketplace. Any of the downloaded HTML styles from will be integrated into your bloomed project, provided you chose a style when exporting HTML and used the Full Page option.

Cover images

If you have a folder called images in the same location as your export location (make one) and then inside that a file called cover.jpg the image will be sucked into your project and show up on your index page after you bloom. Va va voom.

Exclude some sheets

In Ulysses, just add the % symbol in the title of any of your sheets. These files will be created but excluded from the index file, so they won't show on the list. I chose a % symbol because it means "unfinished" to me.

Show word counts? Alphabetize links on index page?

Some of the questions the program will ask you is if you'd like to show words next to the links on the index page, or if you'd like those links alphabetized. Say y if yeah, default is no.

bloom.json file

If you save your answers to the CLI in a bloom.json file in the folder where you save your Ulysses web export, Bloom will ask if you want to use that file instead of asking you all the questions.

SSML Support

Answer yes to the SSML (speech synthesis markup language) question or put a ssml : true in your bloom.json file, and every page will be converted to an XML file and thrown in the ssml folder inside index-bloomed. Any HTML tags are stripped and don't show up in speech. Include an author: "your name" in bloom.json and "by 'your name'" will be inserted after the title with proper pauses. These files have been tested with Amazon Polly using aws-tts to generate mp3 files of short stories.

FTP upload included

Now bloom-cli will ask you if you want your project uploaded, and will ask you for FTP credentials. Use ftp: true in your bloom.json file. Bloom will still ask you for your credentials in this case, then upload your new site there.

I don't want to upload through the CLI

Open up FileZilla (or whatever FTP program people are using these days) and make a folder on your server to copy the files from index-bloomed into. Then navigate there in your browser. Voila: a website made from your Ulysses stack.




npm i bloom-cli

Downloadsweekly downloads









last publish


  • avatar
Report a vulnerability