diff --git a/src/Composer/Console/HtmlOutputFormatter.php b/src/Composer/Console/HtmlOutputFormatter.php
new file mode 100644
index 000000000..264377ee2
--- /dev/null
+++ b/src/Composer/Console/HtmlOutputFormatter.php
@@ -0,0 +1,88 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Console;
+
+use Symfony\Component\Console\Formatter\OutputFormatter;
+
+/**
+ * @author Jordi Boggiano
+ */
+class HtmlOutputFormatter extends OutputFormatter
+{
+ private static $availableForegroundColors = array(
+ 30 => 'black',
+ 31 => 'red',
+ 32 => 'green',
+ 33 => 'yellow',
+ 34 => 'blue',
+ 35 => 'magenta',
+ 36 => 'cyan',
+ 37 => 'white'
+ );
+ private static $availableBackgroundColors = array(
+ 40 => 'black',
+ 41 => 'red',
+ 42 => 'green',
+ 43 => 'yellow',
+ 44 => 'blue',
+ 45 => 'magenta',
+ 46 => 'cyan',
+ 47 => 'white'
+ );
+ private static $availableOptions = array(
+ 1 => 'bold',
+ 4 => 'underscore',
+ //5 => 'blink',
+ //7 => 'reverse',
+ //8 => 'conceal'
+ );
+
+ /**
+ * @param array $styles Array of "name => FormatterStyle" instances
+ */
+ public function __construct(array $styles = array())
+ {
+ parent::__construct(true, $styles);
+ }
+
+ public function format($message)
+ {
+ $formatted = parent::format($message);
+
+ return preg_replace_callback("{\033\[([0-9;]+)m(.*?)\033\[0m}s", array($this, 'formatHtml'), $formatted);
+ }
+
+ private function formatHtml($matches)
+ {
+ $out = ''.$matches[2].'';
+ }
+}