Jump to version: 0.9 0.8.2 0.8.1 0.8 0.7.3 0.7.2 0.7.1 0.7 0.6.4 0.6.3 0.6.2 0.6.1 0.6 0.5.1 0.5 0.4.1 0.4 0.3.2 0.3.1 0.3 0.2.2 0.2.1 0.2


  • "from ostatus" is now replaced by "from $INSTANCE_URL" for remote notices.
  • Thanks to @moggers87, we now have mostly functional UTF text entry support (i.e., non-ASCII characters work properly) - true support would depend on Python 2.x actually getting a curses module with proper wide-char support.
  • Slogans now appear instead of the "doing nothing" message. Can be restored to old behaviour by setting "status_slogans" to false in config.
  • Tabs are now numbered - for tabs 1-9, the number is the same one you press to switch straight to it. Can be disabled by setting "enumerate_tabs" to false in config.
  • Border is now off by default. However, if you already set "border" in config, it will remain how you set it.
  • New slogans, as usual.
  • Bugfixes for:
    • Non-sane application of "new_reply_mode" when splitting notices.
    • All the "NoneType has no length" errors so far unearthed.
    • Crashes on "/user (n)"-type commands, where (n) is a notice number.


  • Fixed broken
  • Fixed broken OAuth code.


  • Fixed broken


  • New slogans.
  • Pausing (p to toggle pause on the current tab, P for all tabs), with a pause line to indicate which notices are before/after a pause.
  • Unfavouriting notices (command /unfavourite, or hotkey F).
  • Z (shift+z) keybinding to move to last dent in timeline.
  • Config is now stored in ~/.identicurse/config.json. Any existing setups will be automatically converted upon start.
  • Colourschemes can now be stored as discrete files, and pulled in with the "colorscheme" config key. Sample colourscheme provided under misc/.
  • Default keybindings can now be fully overriden.
  • d/D default bindings are now reply mode/reply respectively, the opposite way round to in 0.7, since reply mode is generally more useful.
  • L (shift+l) keybinding to display notice links, for use in (for example) linking others to a specific dent.
  • Support for 1.0's conversation API, allowing full conversations to be viewed at last. (only on 1.0+ instances)
  • Support for displaying "user -> user"-style addressee information on 1.0+ instances.
  • Moved to using Leah Culver's python-oauth module (MIT licensed), resolves some weird OAuth edgecase bugs.
  • <TAB>/+ and <shift+TAB>/- bindings for cycling through tabs (second pair cycles backwards).
  • New regex-based filtering mode. More complex, but more flexible.
  • m and M keybindings, and /mute and /unmute commands, for muting/unmuting entire conversations. Any notice in a muted conversation will simply not be displayed. (only on 1.0+ instances)
  • Message-splitting behaviour adjusted to make more sense with 1.0 instances.
  • "new_reply_mode" config key for not auto-prepending @usernames when starting reply mode.
  • Bugfixes for:
    • IdentiCurse gave a "bad credentials" error on trying to use valid credentials, if the instance was down.
    • Some "currently-selected dent" commands crashed the whole program on exceptions.
    • /link would not match ftp:// URLs.
    • /link commands would crash IdentiCurse if no link was present in the target dent.
    • Repeating wouldn't work on 1.0+ instances.


  • Tab completion is now more reliable across different systems.
  • When deleting characters from multiline input boxes, the remaining lines are correctly moved over the line boundary.
  • "/link [notice number]" no longer causes a crash
  • Odd edge case fixed, where username/tag/group identification within a dent misidentified an entire dent as a single username/tag/group.
  • An import bug that prevented running successfully on python 2.5 is now fixed.


  • The favourites tab no longer crashes on load.


  • No longer gets the wrong path on initial setup on Windows, which would crash it.


  • New slogans.
  • The screen will now flash when an update fetches new mentions/direct messages.
  • Smoother scrolling when using a/s to switch notices; when moving to a notice that is partially/fully off the screen, IdentiCurse will now only scroll enough to make it visible, rather than scroll by an entire page. Controlled by the 'smooth_cscroll' config option, default true.
  • /quote command added, for adding/changing text when repeating a notice.
  • If HTTPS is not used when initially creating an account, IdentiCurse now double-checks that this is definitely what the user wants.
  • There is now a tab bar, which displays all tabs in order. This replaces the former "Tab x: Name" that was on the right of the status bar.
  • UI elements can now be placed in an arbitrary order, with the default layout remaining the same as the fixed layout of previous versions (except for the addition of the tab bar). See README for syntax details.
  • OAuth is now supported, and can be enabled either on initial setup, or by setting the config option 'use_oauth' to true.
  • Links for the web view of each notice can be displayed after them. Config option 'show_notice_links', default false.
  • Size of the input box can now be changed, by setting the 'length_override' config option to the minimum number of characters that should be able to fit in the input box.
  • Tab completion of usernames, groups, and tags. Determines whether to use groups/tags by looking for # or ! at the start of the word. Defaults to usernames if either @ or no sign present. Only aware of users/groups/tags already seen, unless config option 'prefill_user_cache' is set to true (this will result in all users you follow being available for tab completion, at the cost of slower startup).
  • Tab completion of commands, identified by an initial /.
  • URLs will be shortened using on pressing tab immediately after them (as if you were trying to tab-complete them).
  • In-development (-dev) versions now have distinct codenames from their corresponding final releases, though they share the same initial letter.
  • /quit command, has the same effect as the q keybinding.
  • 'initial_tabs' now supports the favourites tab type, and also has a terser syntax for some tab types. See README for more detail.
  • "Updating" status message now also states which tab is currently being updated.
  • Reply mode: normal replying, but with the ability to edit the entire notice, rather than automatically getting the target user's name added.
  • Compact mode is now extremely compact, but disabled by default. The new non-compact is the same as 0.6's compact.
  • 'show_source' option, to show/hide the source messages ("from $client") for notices. Default is true.
  • Refreshing now only fetches notices not already received, resulting in speed improvements for refreshing.
  • The cursor is now hidden when not in the input box.
  • There is now support for building on Windows.
  • The terminal's title is now set to "IdentiCurse".
  • Messages from the --colour-support command-line option are now more correct.
  • New keybindings (case sensitive: E is different to e, for example):
    • : goes into insert mode with an initial / already present. Useful for quick commands.
    • E goes into quote mode with the currently selected notice.
    • D goes into reply mode with the currently selected notice.
    • , moves the current tab one place left in the tab bar.
    • . moves the current tab one place right in the tab bar.
    • # deletes the currently selected notice.
  • Bugfixes for:
    • HOME/END do not work in input box.
    • HTML entities are not expanded when encountered during remote notice expansion.
    • All known remaining reflowing bugs.
    • IdentiCurse crashes on very fast resizing of window.
    • IdentiCurse crashes when certain Unicode characters are present in a notice and are not supported by the user's system.
    • Notice time/date is displayed incorrectly when the instance has non-zero offset in its timestrings.
    • IdentiCurse crashes on attempting to view the profile of a non-existent user.
    • Spaces are discarded when at the start/end of lines in multi-line input box.


  • API implementation changed to fit with changes to the API.


  • Buffer errors on Cygwin fixed.


  • Fixed broken codepath encountered only by upgrading users.


  • Colours enabled by default.


  • New slogans.
  • Borders can now be switched off, with the 'border' config option.
  • Notices can now be displayed in compact mode (new default), or non-compact mode (as in old versions), as dictated by the 'compact_notices' config option..
  • Catch typos like "/r1 foo", and automatically treat as "/r 1 foo" (favours exactly what was typed if it's interpretable as valid).
  • Added the ability to colour various parts of the application either manually or with a default colour scheme. You can turn it off.
  • Automatic configuration is now done on first run if you don't have a config - no need to manually set up config any more.
  • Reflowing now tries to split on word boundaries where possible - less words split over lines.
  • Notice times given are now approximate.
  • Config is now looked for at ~/.identicurse, then /etc/identicurse.conf. The latter is recommended only if you absolutely need more than one user to share a single config file.
  • New /alias command for creating aliases from within IdentiCurse.
  • Usernames in notices are highlighted in the same colour as usernames in the notice details.
  • User, tag, and group rainbows, where each user/group/tag is assigned a random colour that persists wherever that user/group/tag is mentioned in the timeline. Config options are "user_rainbow", "group_rainbow", "tag_rainbow", possible values true or false.
  • Experimental expansion for remote notices that were truncated due to local instance having shorter length_limit Config option is "expand_remote", possible values true or false.
  • Search results are now highlighted (provided colour is enabled).
  • Bugfixes for:
    • Time is several hours out for notices whose post time (according to the server) is ahead of local time.
    • Profile crashes if URL, Bio or Location is not set for a user.


  • Initial setup documentation clarified.
  • Failure to revert to correct status after in-page search fixed.
  • README reflowed to thinner width.


  • New slogans.
  • Directs can now be sent by notice number as well as by name.
  • In-page search, activated with / key. n/N can be used to quickly move between matches.
  • Dents that begin with / but aren't commands will now be sent as normal dents.
  • /reply in DM tabs is treated as /direct, to prevent messages intended to be private from accidentally being sent publicly.
  • Tab-switching is now keys < and >.
  • Quick Reply: Can now type 'l' then a number between 1-9 to quickly reply to that dent.
  • Current Reply, Current Favourite, Current Repeat, and Current Context: Can now type 'd' to reply to the currently selected dent, 'f' to favourite it, 'e' to repeat it, or 'c' to view its context. Use 'a' and 's' to switch current dent, or 'z' to switch back to the first dent in the current page.
  • Can now press = to go back to the top of the newest page (in paged tabs).
  • Page number indicator in tab names.
  • Character counter for insert mode.
  • Slogans will now be read from ~/.identicurse_slogans (see README for format details) if it exists.
  • Repeats are now displayed and handled the same as their source dent (except that the user section of the dent gains a "repeat by" section on repeats).
  • Bugfixes for:
    • Split statuses cause crashes if set to preserve the first word (i.e., replies, bug reports, and feature requests).
    • Timestamp is " ago" if the dent was created within a second of current time. (Fixed timestamp in this situation is "Now".)


  • Incorrect license in fixed.


  • Tabs know if they are active, so the display can be updated for the active tab as soon as its data is finished updating.
  • Links in a notice can now be opened in a browser with the /link command.
  • Daily average for number of notices.
  • New slogans.
  • SPACE/b for moving down/up a whole screen's worth.
  • HOME/g for scrolling to the top of the page, END/G for scrolling to the bottom of the page.
  • Moving to older/newer pages automatically scrolls to the top/bottom, respectively.
  • Keybindings can be customised in config.
  • HTTP errors when communicating with the SN instance now display in the status-bar instead of messing up the screen.
  • New split indicator .., shorter than the original (...).
  • /groupmember command for checking group membership.
  • Bugfixes for:
    • Viewing profiles where bio/location contains non-ascii characters causes an exception.


  • Incorrect version number in fixed.


  • Incorrect first-run instructions fixed.


  • Filters
  • Adjust number of notices fetched per page (all timelines excluding Public, Search, Favourites)
  • Scrolling with j/k.
  • Leaving insert mode with ESC.
  • DEL now functions correctly in insert mode.
  • Tab switching with n/p.
  • New slogans.
  • Clean reflowing of buffers to prevent overflowing the screen and causing crashes.
  • Aliases can alias to commands with parameters included, instead of just bare commands.
  • Commands can now contain an arbitrary number of spaces between parameters.
  • Long dent handling now defaults to splitting.
  • Context view now follows repeats back to the original notice, as if they were a reply (repeats that can be followed this way are denoted by [~]).
  • Expanded profile pages.
  • As of this version, IdentiCurse is distributed as an installable package, using setuptools.
  • Notices posted are now automatically shown on the timeline without refreshing every time (faster)
  • More detail in StatusNet error messages.
  • Bugfixes for:
    • Exceptions occurred when ending, even on clean quit.


  • Textbox crashing fixed.


  • Enter now works to submit in multiline text-boxes.
  • Python 2.5 compatibility.


  • Long dent handling, default behaviour is to truncate.
  • IdentiCurse now looks for config in ~/.identicurse before trying ./config.json.
  • IdentiCurse inherits terminal colours (previously defaulted to an ugly grey on some terms).
  • Multiline input, requires CTRL+G to submit.
  • Stacked tab order, so you return to the last tab you were on when closing another.
  • Timelines auto-update, except while in insert mode.
  • Dents have timestamps.
  • Paged timelines.
  • Automatic resizing of windows now results in IdentiCurse also resizing.
  • Initial tabset is now configurable.
  • /config command.
  • /home, /mentions, /direct, and /public commands.
  • Correctly handles unlimited-length StatusNet instances.
  • Bugfixes for:
    • User timelines could not be viewed with /user [notice number] syntax.
    • Profile pages get duplicate information on refresh.