PySkypeScribe is a simple tool for turning Skype chat logs into meeting minutes. Useful for Skype-conferences and based on SkypeScribe by Phil Archer.


Using easy_install

Download the compiled package from https://bitbucket.org/mhall/pyskypescribe/downloads and run easy_install PySkypeScribe-VERSION.tar.gz.

From Source

Download the source from https://bitbucket.org/mhall/pyskypescribe/downloads and run python setup.py install.

Creating the Skype Log

To create a chat log file, simply select all the Skype chat entries that you wish to include in the minutes and copy them into a text file. This will generate a basic set of meeting minutes, listing who is mentioned in the chat log and what they said.

Since it is hard to type at the same time as speaking, it is possible for one (or more) people to act as scribes and who take notes for the current speaker. To do this, they simply prefix their chat message with the name of the person speaking:

Arthur: Let's not go to Camelot, it's a silly place.

In the final minutes the text will be attributed to the original speaker and not to the person acting as note-taker.

In addition to this basic functionality, there are a number of special tags that PySkypeScribe will recognise and that will be specially marked-up in the meeting minutes.

Meeting Title, Chair & Skribe

To give the resulting document its title:

meeting: Round Table

To specify the name of the person chairing the meeting:

chair: Arthur, King of the Britons

To explicitly specify who is acting as note-taker:

scribe: Patsy


PySkypeScribe will automatically create a list of attendees based on the names used by the people typing in the chat window. It is possible to add people to the list of attendees:

present: Sir Lancelot, Sir Galahad

Similarly it is possible to note that somebody was absent:

regrets: Historian

PySkypeScribe also supports the tags present+ and regrets+, however for consistency reasons the syntax given above is preferred.


To provide a link to where the agenda can be found use the following syntax:

agenda: http://holy.grail/round_table_agenda

To specify that a certain agenda item or other topic is being discussed:

item: Deadly Rabbit Plague

You do not have to specify an agenda to use the item: ... tag.

Action Items

To specify that a specific action has been assigned to a person use the following syntax:

action: Lancelot to rescue Galahad

The to is important, without it the action will not be shown as assigned to a specific person in the minutes.


You can either make corrections in the chat log file after the meeting has concluded or by using the following syntax:


This must appear directly after the chat message that contained the text to correct.


To generate a basic HTML file from a Skype chat-log run:

PySkypeScribe SKYPE_LOG

To change the output format use the -f` option:


which supports all output formats available via docutils. The most common output formats are listed here:

html4css1:HTML with a CSS stylesheet
html:An alias for html4css1
odf_odt:OpenDocument Format
docutils_xml:DocBook XML

You can also get at the intermediate reStructuredText representation that PySkypeScribe generates and that is used to generate all other formats. In this case use rst as the FORMAT.

PySkypeScribe can load settings from a configuration file (see Configuration):



The PySkypeScribe uses standard Windows INI files for its configuration. The configuration splits into two areas. PySkypeScribe contains settings used by the core PySkypeScribe when parsing the chat log and Docutils contains configuration settings used by docutils when creating the final output.


People's names are often different to their Skype chat names or to the names used by the note-taker. To merge these use the name-mappings setting. It contains a comma-separated list of NAME IN LOG=NAME IN MINUTES entries. When PySkypeScribe parses the chat log, all mentions of NAME IN LOG will automatically be transformed into NAME IN MINUTES. NAME IN LOG must be unique, but multiple different NAME IN LOG can use the same NAME IN MINUTES:

name-mappings: SR=Sir Robin, Brave=Sir Robin, Arthur=King of the Britons

SkypeScribe uses a number of simple heuristics to guess when something is a name and when not. Sometimes it gets it wrong and the settings ignore-names and force-names can be used to correct it. Both are comma-separated lists:

ignore-names: Deadly Rabbit
force-names: The Witch


Check the docutils configuration for a full list of configuration options available. Basic useful settings are:

stylesheet_path: paths-styles.css
initial_header_level: 2
field_name_limit: 0