<big>K</big>ickshaw accetta gli elementi XML seguenti e i nomi degli attributi, i valori degli attributi e i contenuti associati a questi elementi:

<tt><b>Elemento:</b>			<b>Nomi degli attributi:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		N/D
 ↳command      		N/D
 ↳startupnotify		N/D
  ↳enabled     		N/D
  ↳icon        		N/D
  ↳name        		N/D
  ↳wmclass     		N/D

					<b>Valori degli attributi:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout
               		
               		<b>Contenuti:</b>
enabled        		yes, no</tt>

Gli ID dei menu composti da stringhe vuote sono validi, ma come ogni altro ID di menu possono comparire solo una volta in un menu.

— — —

I seguenti menu sono equivalenti e accettati sia da Openbox che da Kickshaw.

<tt><b>(1)</b> &lt;openbox_menu&gt;

      &lt;menu id="menu1" label="Menu1"&gt;
        &lt;item label="item"/&gt;
      &lt;/menu&gt;

      &lt;menu id="root-menu"&gt;
        &lt;menu id="menu1"/&gt;
      &lt;/menu&gt;

    &lt;/openbox_menu&gt;</tt>

<tt><b>(2)</b> &lt;openbox_menu&gt;

      &lt;menu id="root-menu"&gt;
        &lt;menu id="menu1" label="Menu1"&gt;
          &lt;item label="item"/&gt;
        &lt;/menu&gt;
      &lt;/menu&gt;

    &lt;/openbox_menu&gt;</tt>

Un menu viene sempre mostrato in Kickshaw come apparirebbe in Openbox, quindi il secondo degli esempi è più vicino a un approccio WYSIWYG. Tuttavia, per menu di grandi dimensioni, questo può rendere il file del menu un po' confuso. Per questo motivo, per impostazione predefinita Kickshaw salva sempre il menu nel formato precedente (questo può essere modificato nelle opzioni). Durante il salvataggio di un file, il programma utilizza tabulazioni per le indentazioni per impostazione predefinita, ma durante la lettura del file, se tali indentazioni sono state fatte con spazi o tabulazioni è irrilevante, così come eventuali spazi vuoti.

— — —

Un menu può contenere attributi di menu contraddittori, come nell'esempio seguente:

<tt>&lt;openbox_menu&gt;

  &lt;menu id="menu1" label="outside" icon="out.jpg" execute="out" /&gt;

  &lt;menu id="root-menu"&gt;
    &lt;menu id="menu1" label="inside" icon="in.jpg" execute="in" /&gt;
  &lt;/menu&gt;

&lt;/openbox_menu&gt;</tt>

In questo caso, Kickshaw segue l'esempio di Openbox e mostra il valore dell'attributo icon dal menu interno al menu Root, mentre mostra i valori degli attributi label ed execute dal menu esterno al menu Root.
