Skip to content
A MouseHole like proxy from Jabber.
Pull request Compare This branch is 6 commits ahead of dokipen:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



What is JabberHole?

JabberHole is a proxy for Jabber clients. It does not only
relay TCP data between a client and a server, but is able to
intercept, generate and modify XMPP stanzas.

JabberHole is something similar to MouseHole[0], which does
the same for HTTP.


How to use JabberHole?

Modify the account settings in your Jabber client. Keep the
JID, the proxy determines the target server from it. Just
set your client to connect to localhost:5224.

How to extend JabberHole?

JabberHole reads all scripts found in the scripts/
subdirectory. These scripts may hook callbacks for stanzas
from clients and from servers:

Proxy.add_client_callback { |stanza,cl| ... }
Proxy.add_server_callback { |stanza,cl| ... }

Scripts may now determine whether they take action upon the
received stanza.

To send a custom stanza to the client:

To send a custom stanza to the server:

To determine the JID of the client, when it has already

To indicate that a stanza has been fully processed by a
user-scripts callback and no further callbacks are to be
called for this stanza, the block has to return true.

If the callback's block does not return true, server stanzas
are forwarded to the client and client stanzas are forwarded
to the server as normal behaviour. Have a look at the sample

Something went wrong with that request. Please try again.