Skip to content
Code-slide helps you present code and/or run training courses that focus on code-development.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Code-slide is a tool for presenters who use live, working code as part of their presentations.

It's essentially a thin layer over Git, and makes enormous use of git's easy branching to enable you to comparmentalise all your changes into small snap-shots. Another feature is the instant 'stashing' of any changes you might make to a branch while demoing. Right now these stashes are only re-accessed via git's git-stash commands (git stash apply, et al). But we don't lose them and we also keep some state and no longer have to step into git to commit or revert/rebase

The new Implementation has removed the dependency upon git, and replaced it with a more generic interface although any plugin/replacement scm has to be able to provide something similiar to git's branching, stashing etc.

It's still very beta, so please go easy on us!

Future features:

  • How about An attempt to move away from powerpoint and towards the browser as a means of 'presenting' slides. with the use of html to document code changes, act as slides for a specific branch. perhaps use some very lightweight framework (ramaze? sinatra?) to produce slides/views

  • Add a means of restoring stashs when you return to a particular branch.

  • Perhaps Add some interactivity ala sensei?

  • Add the ability to add -slides- via code-slide, thus bypassing the git process? new_slide would always make sure you were in the last branch (to be able to maintain incremental progression)

Andy Mendelsohn - December 2010


git clone

rake install

How to:

Workflow for creating demo code

  1. mkdir my_project

  2. cd my_project

  3. git init .

  4. touch README

  5. git add README

  6. git commit -m “The first commit”

Getting going:

  1. git checkout -b “1_my_first_slide”

  2. Add some code. the first code you want to show

  3. git add and git commit the code

Repeat :

  1. git checkout -b “2_this_would_be_my_second_slide”

  2. Add some code. The second lot of code you want to show

  3. git add and git commit the code

And then repeat. repeat. repeat

Workflow for presenting code to a hungry audience

If you have installed code-slide without any problem, you should be able to call the code-slide command at any time, as it will be in your path.

  1. cd my_project

  2. code-slide first (this puts you at the start of your code-set, you're ready to go!)

  3. Show code / Talk through code

  4. code-slide next (this moves you to the next slide, checking out that particular branch)

  5. Repeat step 3.

  6. Repeat step 4.

From then on you can call code-slide prev/next or just give it a number and it will take you to that particular slide

The following commands are provided for your use:

Run with the following:

  • help : Prints this command list

  • prev : Checks out the previous step

  • list_steps : Lists the possible steps and their order

  • next : Checks out the next step

  • start : Start the course - sets the runner to 0 - probably not necessary anymore

  • current_branch : Prints the current branch name

  • file_mods : Lists the files and their modifications between this step and the previous one

  • changes : Lists the files changed between this step and the previous one

  • first : Checks out the first step

  • last : Checks out the last step

Providing just a number will change to that particular step


It requires that your git branches are names consecutively: 1_tag, 2_tag, 3_tag, etc. 
Anything that doesn't start with a number (like master) won't be included as a slide.

check the tests for how to use.

Contributing to code-slide

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet

  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it

  • Fork the project

  • Start a feature/bugfix branch

  • Commit and push until you are happy with your contribution

  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.

  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.


Copyright © 2010 Andy Mendelsohn. See LICENSE.txt for further details.

You can’t perform that action at this time.