Do the Work

Based on theWork of ByronKatie

remove your suffering


Welcome to Do the Work.

It will step you through the statement of an issue, the four questions, and the turn around. When you are done it will give you the option to save the issue and your responses so you can revisit them in future. I hope you find it helpful.

There is no documentation for theWork here. If you are going to use this program, you will have to be familiar with theWork of ByronKatie already. There is a link to her website below, but first some housekeeping.

You are using this software at your own risk. I take no responsibility for any results you achieve, or lack thereof. I also am not responsible for any psychological changes that occur.

I learned theWork from the materials on Katie's website, and, sure enough, it works! I decided to write a helper program and I decided to share it. Have fun!


I hope the program is pretty self evident. You should just be able to unpack it, change to the folder, and run it as


and up should come the gui. The main window will show the default sequence if you have one, only the questions if you don't. You can run a new sequence or rerun the currently showing sequence. The only difference is that the run of a new sequence asks for a new issue to work on while the rerun uses the currently shown issue.

Each question pops up in a dialog where you can enter the text. Tab-Enter or click Done when you are finished, and it will move to the next after writing the just completed answer to the main page. If you just want to use the dialogs as helpers while you work, you can click Done when you are finished to move on, and the blanks will be written.

By default, sound is turned on using Pygame, and the questions will be spoken in one of five different voices pseudo randomly when the response window comes up. You can turn sound off in the Configuration Menu, but you will still need Pygame installed in order to run the program.

If you don't like the voices, or want only one of them to be used, there is no built in mechanism for doing that right now. There are some alternatives available to you, but they require a certain amount of effort.

  1. You can just copy the questions in the voice you want to all the other voices in the sound directory. e.g. Copy true3.wav to true1.wav, true2.wav, true4.wav, and true5.wav. Then every voice will be the same. If you ever want to get them back, you can just unpack the archive again.
  2. You can use a tool like audacity to record the questions as you would like them to be voiced and move your version to the sound directory as in 1. above.
  3. You can take versions of the questions from Katie's videos and put them in the sound directory, replacing existing voices for the questions. There are legal issues with distributing such copyrighted work publicly, so you should only do this for your own use unless you get permission from Katie. That is the reason they are not included with the project download already as I think it would be great if it was Katie asking the questions in the program. Extracting them is also fairly complex and depends on the tools available to you, so I won't describe the procedure here except to say that I would use mplayer and audacity if I was doing it.

With the turn around, you have the option to add more than one by clicking Next instead of Done. If sound is turned on, the question will be repeated with each cycle as well.

After you finish a sequence, it will be displayed on the main page. You can save it for future reference, or throw it away with a reset or new sequence. Simplicity.

You might not like the format of the questions that I use. In the configuration menu there is the option to change all of the questions to whatever you want. You can make your new questions be the default on start up as well by saving them in the configuration file. If you want them to play back in audio, you will need to record them and save them in the sound directory as described above.

If you want to use the program in a different language, you will have to follow the instructions below. All of the user facing messages are in a file that you can translate and put in a directory where the program will pick them up. Well, it's a little more complicated than that, but not much.

Alternatives and Complements

If the work satisfies all your needs, great! If it doesn't, I recommend several other self discovery techniques you might be interested in. I consider them to be very complementary with theWork, but your mileage might vary.

  1. Meridian Tapping, the generic term for a technique based on the meridians of acupuncture. This is a means for releasing emotional and physical issues that we have. EFT is the most well known example of this, and very effective.
  2. Sedona Method, a technique for emotional release developed by Lester Levenson. Simple, portable, and discreet. Similar to the meridian tapping in its effects.
  3. Brainwave Entrainment, using sound to alter the state of your brain, generating change. Lots of commercial audio available, and there are many free programs for making your own.
  4. Neurolinguistic Programming, or NLP, a technique that investigates the way that information is coded or programmed in the brain, and how to alter that programming. The assembly language of the brain.
  5. Hypnosis, in particular the work of Milton Erickson. This will give you an appreciation for and understanding of the subconscious.
  6. Clean language, the technique developed by David Grove for speaking to the subconscious in its own language. If you've ever been in a country with a different language than any you speak, you can appreciate the value of this.
  7. Meditation. Last, but definitely not least. The means for thousands of enlightened beings over thousands of years. All of the above will enhance any formal meditation practice you do. As to which type of meditation to use, you have your choice of many. Pick one you like and use it until you pick the next one you like, until meditation picks you.

This is a link to a web page with links for many of the above and some other links you might find interesting. Or not. It is the website for my brainwave entrainment application here on sourceforge, called discord. While it is only available for linux, there are links on that website for other brainwave entrainment software.


This program is created using the programming language Python and the GUI interface wxPython, a wrapper for the wxWidgets C++ library that uses the native interfaces on linux, windows, and mac. It uses the Pygame library for sound output. I know that it works on linux. And I know that it can work on the other two major OSs, but I don't have a way of testing it. If you want to use it for them, you will probably have to install Python, wxPython, and Pygame, and then run it as 'python' in a command window.

In order to package a stand alone python application on windows or mac it is necessary to run the programs py2exe or py2app, and these require that you be running the OS you are packaging for. So it is unlikely that this is going to happen any time soon for Do the Work. Unless a user of those OSs does this and arranges to send me the result so I can post it for download. That would be wonderful.

If your native language isn't English, and you want to have a translation to your native language in Do the Work, take the messages.pot file included in the archive and copy it to a file called do_the_work.po. It contains all the user facing messages in the program.

cp messages.pot do_the_work.po

Then enter a translation for every string in the .po file in the language you are translating to. These go in the msgstr entries, just under the msgid entries with the original English messages. Once that is done, if it isn't already installed, install the package python-polib and open a python interactive session.

> python
>>> import polib
>>> # import your just created po file
>>> po = polib.pofile('do_the_work.po')
>>> # compile mo file
>>> po.save_as_mofile('')
>>> import wx
>>> # get the language ID number for the language
>>> # you translated, change as necessary
>>> i18n = wx.Locale (110)
>>> i18n.GetCanonicalName ()

Now use this canonical name to create a directory in the locale directory. Move the do_the_work.po file you created with your translations to that directory, e.g. ja_JP. Create a directory for LC_MESSAGES in that new ja_JP directory. Move your file to that new directory. The next time you start Do the Work, Japanese will appear in the language selection menu under Configuration, and you will be able to select and save the default language to be Japanese. To get the full effects you will have to quit and restart the program after you have saved it as default, but it will be the default from then on. If you have uncertainty about the structure of the directories in locale, see the fr_FR directory as a template.

If you do such a translation for a language, please send it to me and I will include it in the distribution. You can also just post it in the Forums or send it to the mailing list, and I will get it. I would appreciate it if you would send me the canonical name as well, so I can create the directory easily.

You can get polib from here if you can't find it anywhere else: Polib home page

You can get python for free at the Python website

You can get wxpython for free at the Sourceforge wxPython website or the official wxPython website

You can get pygame for free at the Pygame website This uses the SDL library to create the crossplatform sound, and on linux it seems to have both pulseaudio and alsa available. SDL website

The audio messages in the program were generated using Festival, Festival website and tweaked with Audacity. These questions and answers from the Festival mailing list were very helpful in getting it configured and working with multisyn and Mbrola. One of the actual voices used is from the Mbrola project, Mbrola website, for which festival has supporting logic, voice_us1_mbrola. The others are the multisyn voice awl and the standard voice rms.

If you want to replace speech used with Do The Work, you can just replace the files with your own, using the exact same names, and the program will use them. For that, using sound editor Audacity, Audacity homepage, might be useful. The sound files are in the sound directory.

You can read about py2exe at the Py2exe website and download it at the Sourceforge py2exe site.

You can read about py2app at the undefined org website and download it at the Softpedia py2app entry.