Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

James Bond Film Title Generator

This command line application attempts to generate a novel random James Bond film titles based loosely on the existing James Bond film titles. Here are some typical examples:

  • Never Say Love Again
  • Die Another Sky
  • Casino Thunder
  • A Time to Die

How it works

The entire catalogue of James Bond film titles is listed in the templates.clj file. The words making up each title have been tagged with their parts of speech such as noun, verb and adjective etc.

The generator works as follows:

  1. A title is picked from the list at random.
  2. A single word is removed from that title and its part of speach noted.
  3. An alternative word with the same part of speech is picked at random from the other titles to replace the removed word.

Bonus feature

This application can generate other novel output in addition to James Bond film titles. The full list is:

  • James Bond film titles.
  • Star Wars film titles.
  • Harry Potter film/book titles.
  • Power Rangers Dino Charge series episode titles.
  • Famous English proverbs and sayings.

In the case of English proverbs, a blend of proverbs is called a malaphor. Here are some examples:

  • The grass is better on the other side.
  • Actions speak louder than chickens.
  • Absence makes the bird grow fonder.


This application is written in Clojure. If you don't have Clojure installed, this Getting Started Guide will get you up and running quickly.

To install the application, simply check out the source from Github.


  1. To generate a James Bond film title:
$ clj -M -m
  1. To generate other novel output:
$ clj -M -m [jamesbond|starwars|harrypotter|proverbs|powerrangers]

For example, to generate a novel Harry Potter title:

$ clj -M -m harrypotter
  1. And you can mix output from multiple genres! For example, mix James Bond and Harry Potter:
$ clj -M -m jamesbond harrypotter


The following will run the tests:

$ ./bin/kaocha

If you're hacking on this, you might want to automatically run the tests on any change:

$ ./bin/kaocha --watch


To build and run in Docker:

$ docker build -t bond .
$ docker run --rm bond

Arguments can be provided as usual:

$ docker run --rm bond harrypotter proverbs


Copyright © 2020-2021 Safe Hammad

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at


A random James Bond film title generator







No releases published


No packages published