Kickshaw接受以下XML元素和屬性名稱、屬性值以及與這些元素相關的內容：

<tt><b>元素:</b>				<b>屬性名稱:</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		不適用
 ↳command      		不適用
 ↳startupnotify		不適用
  ↳enabled     		不適用
  ↳icon        		不適用
  ↳name        		不適用
  ↳wmclass     		不適用

					<b>屬性值:</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout

					<b>內容:</b>
enabled        		yes, no</tt>

由空字符串組成的選單識別碼是有效的，但就像任何其他選單識別碼一樣，在一個選單中只能出現一次。

— — —

以下兩個菜單係等效嘅，Openbox同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>

一個選單在Kickshaw內總是顯示成在Openbox中的樣子，所以後者的兩個範例更接近所見即所得（WYSIWYG）的方法。但缺點是對於大型選單，這樣可能會令選單檔案看上去有些混亂。因此，Kickshaw預設情況下總是按照前者的格式儲存選單（這個設定可以在選項中更改）。

儲存檔案時，程序預設情況下使用製表符進行縮排，但讀取檔案時，使用空格或製表符進行縮排與否並不重要，任何空白字元都一樣。

— — —

一個選單可以包含矛盾的選單屬性，就像以下的例子：

<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>

在這個情況下，Kickshaw跟隨Openbox的做法，顯示根選單內部的icon屬性值，同時顯示根選單外部的label和execute屬性值。
