🌐
Python documentation
docs.python.org › 3 › howto › curses.html
Curses Programming with Python — Python 3.14.3 documentation
Author, A.M. Kuchling, Eric S. Raymond,, Release, 2.04,. Abstract: This document describes how to use the curses extension module to control text-mode displays. What is curses?: The curses library ...
🌐
DZone
dzone.com › coding › languages › python curses, part 1: drawing with text
Python curses, Part 1: Drawing With Text
April 21, 2025 - It is called the Python curses module. The code examples in this article were run in the following environments: ... Some of these examples may not work with Windows. The demonstrations in this programming tutorial series — of which this is part one — also presume a basic working understanding ...
Discussions

Any Python/Curses resources?
have you checked the python curses howto already? I have written a curses wrapper for one of my projects. Maybe it can help showing what steps you need. I've been using curses a lot for my own projects so feel free to ask me if there's something you want to know. The python curses library is mostly just a wrapper around calls to the ncurses system library. Documentation for that library or ports in other languages will likely help you in python too. More on reddit.com
🌐 r/roguelikedev
9
21
May 10, 2021
curses example – Use the command line as your GUI.
I'm trying to make a fancy CLI interface in python. Curses is very confusing (and I can't find a good tutorial!) Any suggestions? More on reddit.com
🌐 r/Python
15
40
June 2, 2013
Python curses

You need a regular terminal for curses to work.

More on reddit.com
🌐 r/learnpython
1
2
April 4, 2021
I finally finished it: Pygcurse - A Python curses emulator built on Pygame to help make rougelikes and text-adventures.
Rogue. Not rouge. :| More on reddit.com
🌐 r/programming
87
334
September 10, 2011
🌐
GitHub
gist.github.com › claymcleod › b670285f334acd56ad1c
Python curses example · GitHub
import curses def draw_menu(stdscr): k = 0 kw = 0 kk = "" height, width = stdscr.getmaxyx() min_x_keystr = width - 1 min_x_wkeystr = width - 1 min_x_kkeystr = width - 1 cursor_x = 0 cursor_y = 0 # Clear and refresh the screen for a blank canvas stdscr.clear() stdscr.refresh() # Start colors in curses curses.start_color() curses.init_pair(1, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_BLACK, curses.COLOR_WHITE) # Loop where k is the last character pressed while (k != ord('q')): # Initialization #stdscr.clear()
🌐
YouTube
youtube.com › playlist
Python Curses Tutorial - YouTube
Share your videos with friends, family, and the world
🌐
Python
docs.python.org › 3 › library › curses.html
curses — Terminal handling for character-cell displays
Tutorial material on using curses with Python, by Andrew Kuchling and Eric Raymond.
🌐
W3Schools
w3schools.com › python › ref_module_curses.asp
Python curses Module
Python Examples Python Compiler ... Python Certificate Python Training ... The curses module provides terminal handling for character-cell displays, supporting text UIs....
🌐
OMZ Software
omz-software.com › editorial › docs › howto › curses.html
Curses Programming with Python — Editorial Documentation
The addstr() function takes a Python string as the value to be displayed, while the addch() functions take a character, which can be either a Python string of length 1 or an integer. If it’s a string, you’re limited to displaying characters between 0 and 255. SVr4 curses provides constants for extension characters; these constants are integers greater than 255.
🌐
DevDungeon
devdungeon.com › content › curses-programming-python
Curses Programming in Python | DevDungeon
June 10, 2019 - I strongly encourage you to browse the full documentation. This tutorial will serve as an introduction to common tasks. If you want to check out a simple finished project that uses Python curses, check out the issh DevDungeon project which creates a menu for choosing SSH connections.
Find elsewhere
🌐
Substack
codedrome.substack.com › p › an-introduction-to-curses-in-python
An Introduction to curses in Python - CodeDrome - Substack
May 20, 2025 - In a few of my projects I have used various ANSI terminal codes to manipulate terminal output, specifically moving the cursor around and changing text colours. These codes are often cryptic, can be cumbersome if used extensively, and cannot be relied upon to work across different platforms. A better solution is to use Python's implementation of the venerable curses library, and in this post I will provide a short introduction to what I consider its core functionalities: moving the cursor around and printing in different colours.
🌐
Readthedocs
docspy3zh.readthedocs.io › en › latest › howto › curses.html
Curses Programming with Python — Python 3 文档(简体中文) 3.2.2 documentation
The addstr() function takes a Python string as the value to be displayed, while the addch() functions take a character, which can be either a Python string of length 1 or an integer. If it’s a string, you’re limited to displaying characters between 0 and 255. SVr4 curses provides constants for extension characters; these constants are integers greater than 255.
🌐
Gnosis
gnosis.cx › publish › programming › charming_python_6.html
CHARMING PYTHON #6 -- Curses programming in Python: Tips for Beginners --
If the base curses module starts ... path for growth. Andrew Kuchling has written a nice introductory tutorial on curses programming, titled Curses Programming With Python....
🌐
Reddit
reddit.com › r/roguelikedev › any python/curses resources?
r/roguelikedev on Reddit: Any Python/Curses resources?
May 10, 2021 -

I know curses is generally disliked around here, and tcod is recommended. I've tried to get tcod working on two operating systems though, and couldn't get it to work on either. I haven't tried really hard though, because curses really appeals to me, both by being the traditional library used for most of the roguelikes I played growing up, and also because of the small footprint when it comes to system resources.

There aren't many Python/Curses resources out there. I've found a few non-roguelike-specific tutorials on youtube, the Rogue Detective source, and this non-functional algorithm. I'm pretty sure this is enough for me to cobble together something playable. I'm just curious whether there are better methods I could be using.

🌐
Readthedocs
pydoc-zh.readthedocs.io › en › latest › howto › curses.html
Curses Programming with Python — Python 2.7.6 documentation
The addstr() function takes a Python string as the value to be displayed, while the addch() functions take a character, which can be either a Python string of length 1 or an integer. If it’s a string, you’re limited to displaying characters between 0 and 255. SVr4 curses provides constants for extension characters; these constants are integers greater than 255.
🌐
Readthedocs
ironpython-test.readthedocs.io › en › latest › howto › curses.html
Curses Programming with Python — IronPython 2.7.2b1 documentation
The addstr() function takes a Python string as the value to be displayed, while the addch() functions take a character, which can be either a Python string of length 1 or an integer. If it’s a string, you’re limited to displaying characters between 0 and 255. SVr4 curses provides constants for extension characters; these constants are integers greater than 255.
🌐
Wasim Lorgat
wasimlorgat.com › posts › editor.html
How to build a text editor with Python and curses – Wasim Lorgat
December 30, 2020 - Solution. Add a Window class with n_rows and n_cols attributes. In the main function, instantiate a Window with size (curses.LINES - 1, curses.COLS - 1); these are constants that hold the number of lines and columns in the current curses window.