Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Chatterbox Clients

by vroom (His Eminence)
on Jun 01, 2000 at 21:59 UTC ( #15870=sourcecodesection: print w/replies, xml ) Need Help??
on Nov 01, 2008 at 17:14 UTC
by samwyse

A text-mode client for the Chatterbox, revised from mr. nick's original version. Several features that were promised were apparently never implemented, and have been struck out in the list below. Consider them enhancement requests that I may or may not get around to.


  • Check for and fetch autoinstall updates from Perl Monks, rather than mr. nick's now-dead home page. (Note: This feature is configurable, but is turned off by default.)
  • User configurable options (inside pmchat) to
    • Show (or not) your XP when launched
    • Show (or not) who's logged on when launched
    • Show (or not) new nodes when launched
    • Change the URL to check for updates

Main features:

  • Colorized output via ANSI escape sequences (*unix only)
  • Compatible with both *nix and Win32 (mostly barely :)
  • Displays most recent New Nodes
  • Can launch a browser to view a node
  • Check for and autoinstall updates
  • An "Away" mode for not being in "Other Users"
  • Uses the various XML Generators of PerlMonks
  • Tracks XP status
  • Tracks Reputation of your nodes (and displays WHICH nodes have changed -- and by how much)
  • Can launch a browser to view a node
  • Requires NO configuration, just download and run!
  • User configurable options (inside pmchat) for
    • Time-stamping each message (for long-term running) Broken, don't use this.
    • Turn off/on colorization (*unix only)
    • Which browser to use for node viewing
    • Check for and install code updates on launch
    • Seconds between polls for new messages (n/a on Windows)
    • Debugging mode. No output is sent to Perlmonks
    • Log file. Keeps a log of all messages. Set "logfile" to the desired filename. To stop, set "logfile" to "0" or "none".

Shortcomings (because this is a text-mode client):

  • Doesn't render HTML tags
  • Doesn't render special HTML entities (eg: &)
on Mar 14, 2008 at 14:07 UTC
by my_nihilist
This is the result of bidirectional challange, see my final comment there if you are interested in my decision. Thanks halfcountplus for the winning suggestion.

If you use vim on a dark background THCB will suit your mind.

THCB may be just a *nix thing for reasons described by ikegami below. It will still work if you don't provide a valid user name and want to try it "anonymously". Ctrl-c interrupts to give you a prompt so you can talk, but you obviously won't see anymore incoming messages while you wait at the prompt (don't worry, they will be waiting). nb. that removing the line breaks was intentional...

Type DONE at the prompt to quit. Ctrl-\ might work too.

Update: i added a unique on_background colorscheme for each "name:" until there are five names. After that uniqueness is obseleted.

Update #2: now uses Term::ReadLine::Gnu (altho it just sez Term::ReadLine, it won't work unless Term::ReadLine::Gnu is there). This permits slightly improved editing, like use of the <- and ->. ReadLine also adds a command history ("up" and "down"), but since this is not so useful in the CB i replaced it with the names of previous chatters in square brackets, for quick person-to-person style address. There is also a "chatclip" programmed into the first three F-keys.
PLUS rather than fire off a greeting when you log in, your username now appears in THCB's "X" titlebar. PLUS you can now cancel a line by ending it with "*!*"

Really I would like to learn to do GUI web apps in perl, so this will hopefully develop and if anyone wants to help, eg. by pointing me in some direction, please go ahead.
Zedulator - a tiled, integrated CB/PM/Web client
on Oct 03, 2006 at 18:22 UTC
by jZed
Zedulator is a chatterbox client that allows you to explore links mentioned in the chatterbox or entered in the search in the same window as the chatterbox. It requires only a javascript-enabled web browser to run, supports Perlmonks and customizable search shortcuts, and provides more control over screen layout than fullpage chat. You can see 309074 and 575798 for previous discussions about Zedulator.


  1. Download the code, naming it ""
  2. CD to wherever you saved it, run "perl"
  3. When prompted, enter a pmurl or none for
    four .html files will then be created
  4. Point your browser at zedulator.html and away you go.
    You can erase if you want to.
Run zedulator and read it's online hlep for more details.
Chatterbox to Festival Server (TTS output)
on Jun 12, 2005 at 14:03 UTC
by atcroft

Retrieves data from the Chatterbox (CB) XML ticker, and passes it to a running Festival server instance for output as simulated speech. Uses the LWP::Simple module to retrieve the data, XML::Simple to process the data, and the Festival::Client module to communicate with the Festival server. It uses the epoch time of each comment to determine whether or not it has output a particular line to the Festival server already.

Known issues -

  • The fixed delay between sending lines of text to the Festival server was a kludge to resolve an issue seen while testing, where sending the lines too quickly appeared to result in some of them being "lost"-although I am not sure where it might be occurring. On my system, 7s seemed to work okay for this value.
  • The delay setting of 90s between CB retrievals was an attempt to be a nice netizen.
  • Should it take longer than the CB retrieval delay to output all of the waiting content (because of the speech delay being used), the code will sleep for only 1s before the next retrieval.
  • The time for the program to run is based off a period to run for, again attempting to be a good netizen and not wanting to leave copies running that might be taking up resources.
  • What is read is the raw CB text, so it may sound a little strange. This was as much proof of concept as anything, so no attempt was made to make the content sent to Festival more understandable. So, when running, you may hear things such as URLS, left/right brackets, and some tags actually spoken.

Bugs - Aside from the "Known Issues" above, none known yet (the latter being the operative word).

Update: 12 Jun 2005 - Found bug in computing $max_retrievals (parentheses were not placed correctly). Code updated with correct version.

Update: 12 Jun 2005 - Received a question from demerphq wondering why I had used the epoch value rather than the message_id. The reason was because I wasn't paying attention. Code updated to use message_id rather than epoch. I do appreciate the feedback, demerphq-thank you. (And anyone else seeing anything amiss, please let me know.)
on Aug 17, 2004 at 23:00 UTC
by jdporter
See embedded POD.
Curses Chatterbox Client
on Oct 08, 2001 at 05:23 UTC
by {NULE}
This is a client for the PerlMonks chatterbox which uses ZZamboni's PerlMonksChat2 module. You will also need Curses and Curses::Widgets.

Supports most basic PerlMonksChat features with a primitive help system (type /help for all commands). Also uses a configurable buffer size and opens a separate sub-window to scroll through the old messages (type /log to see what I mean). I want to add more fun features, so tell me what you want to see!

Note that it doesn't use colors in this version, because I want it to be "non-descript" on my desktop. I also want it to be very simple so it is not nearly as fancy as some of the excellent clients out there.

Let me know what you think!

- Do some name high-lighting and other niceties.
- The way PerlMonksChat2 works this requires you to have a ~/.netscape/cookies file. Must fix this behaviour.
- Must finish the personal messages handling as well.

20011007 - There was a request to actually post the code here. I will do so, but prefer that you get it from - it will be updated there first.

20011009 - Small bug squished where the buffer would display the line about to be deleted (which could be hours old). That's fixed, and some other visual stuff is, but I think you may see a line doubled when the end of the buffer is reached. I'm off to Atlanta for a week, I'll fix it when I get back.

20011010 - Figured out the "Lag" Problem, but can't fix it until the 15th. Curses::Widgets handles keystrokes differently than I thought. For a workaround set /freq to something very high, like /freq 200

20011015 - The "Lag" problem is squished with a timer that uses "time()" not callback counts. I still want to use "fork()" and do this the right way. By the way, if you have trouble with the current version, my site has all previous versions. Update - /me is fixed now.

20011022 - The lag is gone for good now with a version that forks! I've been testing this for about a week so I have confidence that it works well. I could see this more complicated version not running on a system where it ran before so I'll keep a non-forking version on my web site.

20011031 - Fixed a bug with IPC. Added timestamps, save chat buffer to a file, some handling private messages, and ccb will now try to guess when you have mis-typed a command and give you a chance to retype it before submitting. The ability to delete personal messages will be added soon.

20011105 - More tweaks to IPC. Hopefully it will work better with 5.6.0 now.

on Mar 12, 2001 at 19:37 UTC
by epoptai
framechat is a Perl/CGI XML CB client modeled on the chatterbox frameset at perlmonks. Includes message inbox, private chat, history, xp nodelet, rep change tracker, new nodes ticker, links to vital nodes and more.

To use just fill in the configuration variables (first!) and call it from your local web server.

functions include:

- emulates perlmonks chatterbox linking standards
- integrated message inbox with cc to self option
- new nodes ticker
- rep change ticker with history
- extract and display $NORM
- textarea input for editing extended messages
- large messages chunked for multiple send
- super search form with perldoc, cpan, google and babelfish
- launchpad for accessing your favorite search engines

Run it and select help for more info.

WARNING: Client authentication makes framechat more secure but exercise caution. Do not allow public access to your installation of framechat!

New in 2.0

  • New nodes ticker!
  • Rep change ticker with history!
  • Client login & quit for better security.
  • Create & edit optional external config file.
  • Tools control panel to see & set parameters.
  • /ignore and /unignore and see who's being ignored.
  • /logout and /login implemented.
    • Not in the userlist but still see chat.
    • All links to perlmonks become logged out.
    • History still functions if enabled.
    • Logout disables node title lookup.


  • Faster thanks to less print statements.
  • More robust error handling (esp. xml parsing).
  • XP nodelet now shows xp gain and loss messages (Ack!)
  • inbox/launchpad/newnode frame can remember state.
  • Notes added to update notification.

    Fixed in 2.0:

  • Bug in link parser that caused italic history after an unclosed i tag.
  • Last \$norm should now appear when code updated.
  • Code is less redundant and more readable.

    Fixed in 2.01:

  • A new node with 0 rep showed +0 change (a printf feature).
  • New nodes and check update didn't work if proxy in use.
  • New nodes loadtime was 1 second off.

    Fixed in 2.02:

  • Empty document error if history file for present day didn't exist.
  • IIS breakage addressed with a new config var: $broken.
  • Change to talk frame enables submit with Tab+Enter sequence (thanks grinder).
  • <i> tags would italicize cb text, oops.
  • Rep related data files now 50% smaller.
  • Added config file syntax status feedback and warnings.
  • Improved the help and tools sections.
  • NEW: Node rep history graph!

    Fixed in 2.03:

  • control chrs in chat xml not being stripped due to missing /d modifier on tr in sub fixxml.
  • client authentication erroneously succeeded if username and password not defined.

    Fixed in 2.04:

  • Repaired the chat frame and norm parser to conform with changes at perlmonks.
  • Added support for the latest shortcut tags: pad, kobe, jargon, perldoc. If you use an external config file these need to be added to the @tags array so they appear in the pulldown menu in the input frame, as well as a few items added to the %launch_urls hash.

To run framechat under mod_perl use OeufMayo's mod_perl patch.

on Jun 03, 2001 at 19:28 UTC
by mr.nick
A text-mode client for the Chatterbox.

Main features:

  • Colorized output via ANSI escape sequences
  • Compatible with both *nix and Win32 (mostly :)
  • Displays most recent New Nodes
  • Can launch a browser to view a node
  • Check for and autoinstall updates
  • An "Away" mode for not being in "Other Users"
  • Uses the various XML Generators of PerlMonks
  • Tracks XP status
  • Tracks Reputation of your nodes (and displays WHICH nodes have changed -- and by how much)
  • Requires NO configuration, download and run!
  • Displays Other Users
  • User configurable options (inside Pmchat) for
    • Time-stamping each message (for long-term running)
    • Turn off/on colorization
    • Number of New Nodes listed
    • Which browser to use for node viewing
    • Update on Launch
    • Seconds between polls for new messages (n/a on Windows)
    • Debugging mode. No output is sent to Perlmonks
    • Log file. Keeps a log of all messages. Set "logfile" to the desired filename. To stop, set "logfile" to "0" or "none".

Because pmchat is a text-mode client, it has the following shortcomings

  • Doesn't render HTML tags
  • Doesn't render special HTML entities (eg: &amp;)
RedWolf MonkChatter
on Feb 28, 2001 at 03:28 UTC
by strredwolf
A chatterbox client in Perl/TK. Doesn't need XML or the PerlMonks module. Fairly complete now.

This has a newer XML pharser (it's not XML::Simple). It also works in Windows. (Hey! ActiveState doesn't have Tk pre-bundled!) Also, Level and XP stats, Jumpscroll control, and clearing of the private messages once received (which will automagically sweep previous items you've seen as a side benifit). Also a raw client view and processing of [jumptags] and some HTML(CODE and A tags).

To use: Run as is, and log in via the top line like the Java Chatterbox client (which it's style borrows from). Once logged in, hit the "Return" key to send in a line of chatter on the bottom entryline. There's several options on the ">>" menu worth perusing; "Regenerate" will redo the chatter log.

PerlMonks modules 2.0
on Sep 05, 2000 at 10:35 UTC
by ZZamboni
The module formerly known as PerlMonksChat has gone through a major transformation. Because its functionality now includes much more than the chat part of PerlMonks, I have split it into several modules: PerlMonks (base module), PerlMonks::Chat (chat stuff), PerlMonks::Users (users and XP stuff) and PerlMonks::NewestNodes (a threaded interface to the Newest Nodes page).

The code is too large to post it here, so I'll point you to the web page instead.

There are a number of clients that use these modules. Check out my home node for the full list.


on Sep 01, 2000 at 12:44 UTC
by t0mas
AgentChat is a chatterbox client. It uses small animated characters to communicate the contents of the chatterbox to the astonished user. These characters, called Agents, are ActiveX components that can be controled by the OLE interface.

See pod for further details.
on Jun 22, 2000 at 16:10 UTC
by ase
Tk Version of Shendal's Win32::GUI chatterbox client.
Added features:
  • Color options configurable and persistent between sessions via a tie'd SDBM_File
  • Should work on any platform with Tk 8.0 module
To do:
  • There is still the issue of the GUI blocking when accessing the network. Update: a new version (again based on Shendal's work (see reply below) is in the works... Check back soon.
  • Somehow the Tk status bar Shendal used to help aleviate the item above doesn't seem to work to well in the Tk version.. It doesn't seem to update properly
  • Requires ZZamboni's PerlMonkChat module
  • Use/Abuse freely but, please let me know if you fix/add to it so I can use it too.
PerlMonks pager
on Sep 10, 2000 at 21:51 UTC
by ZZamboni
I was thinking about this program during Friday, but it was a message from Adam that prompted me into action :-)

This program gets your personal messages from PerlMonks and displays or mails them to you. It can optionally check them off automatically. Typical use would be in a crontab entry like this:

0 * * * * $HOME/bin/ -m
To have it check every hour. It keeps a cache, so that every message is only displayed once. If you give it the -i option, it ignores the cache, and shows all the personal messages that you have. The -c option makes it automatically check off all the messages it displays.

This program is also part of the PerlMonksChat distribution.

Perl/Tk Chatterbox Client
on Jul 13, 2000 at 00:33 UTC
by Shendal
GUI Chatterbox client that works on NT and UNIX that makes use of Tk and zzamboni's PerlMonksChat module.

Notable features:
- Native look and feel on UNIX and NT
- GUI username/password changing
- Userlist and XP progress bar
- Text colorization
- Checkoff of private messages
- Separate server process to talk to website to alleviate gui locks
- Clickable links that will launch an external, user definable browser
- Double-clicking userlist will launch browser to user's perlmonks home node
- Colors are customizable and persistent
- Auto name completion -- just type part of a username that's currently lurking, and hit tab
- Msg button to message currently selected user
- Control-return to send message to currently selected user
- Resizable window
- Support for HREF & CODE tags
- Support for html characters
- Colorize user's name
- Bad commands can be suppressed by option (eliminating the /msh, if you want to)
- New: Uses browser that's already open if available

Users may note that this code started as a Win32::GUI program. I have sinced ported to Tk for portability and performance.

Win32::GUI Chatterbox client
on Jun 16, 2000 at 18:59 UTC
by Shendal
NT GUI Chatterbox client that makes use of Win32::GUI and zzamboni's PerlMonksChat.

Notable features:
- Native Windows look and feel
- GUI username/password changing
- Supports userlist and xp (including progress bar)
- Supports colorization of text
- Supports checkoff of private messages
- GUI no longer locks up on updates by using a separate server process
- hitting return/tab now sends information or moves to next field
Get chatbox lines
on May 26, 2000 at 20:29 UTC
by ZZamboni
It gets lines from the Perlmonks chatbox. It can return all the lines that are currently there, or only the new lines since the last time the getnewlines subroutine is called. This piece of code prints the chat to the terminal:
#!/usr/local/perl/bin/perl use PerlMonksChat; $p=PerlMonksChat->new(); while (1) { print map { "$_\n" } $p->getnewlines(); sleep 10; }
It is very rough, but it works :-)
Update: The code posted here was only the first version, and is now grossly outdated. Please see the web page where I keep the latest version of the script. It has grown a lot with the contributions and encouragement of fellow monks. to it.
on Jun 01, 2000 at 21:53 UTC
by httptech
Speech interface to chatterbox, using festival server for the text-to-speech processing. You need to have the festival daemon running and install the Speech::Festival module.

Since it's based on ZZamboni's Chatterbox Client you will need to download his module as well.

Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (11)
As of 2023-12-05 11:15 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (26 votes). Check out past polls.