Skip to main content

A command line mediawiki client.

Project description


This is very simple terminal interface (TUI) for managing personal mediawiki installation.

I have a mediawiki installation on personal server for storing various notes, ranging from family addresses to code
snippets, configuration files and commands I rarely use and can't remember.

While standard web-interface is functional, you have to launch a browser and it takes numerous clicks to find anything.
I find it much more convenient to use `$ wiki my_commands` or `$ wiki search IP` as shown below:

# Installation
pywiki supports both python2 and python3. If you have a choice, use python3.

Recommended way is to use PyPI:
sudo pip3 install pywiki # or sudo pip install pywiki

or, if you want to install from source:

git clone
cd pywiki
sudo python3 install # or sudo python2 install

# Configuration

create a config file in `~/.config/wiki_client.conf`

cat ~/.config/wiki_client.conf

# This is the only required config directive, all the others are optional.

# force an editor. Otherwise your default editor will be used.
# I use vim, but you can use gedit or "gvim --nofork" or whatever you like.

# This is only required if you want to edit articles as a logged in user. (You have to create an account first)

# This is only required if your wiki installation is behind an additional HTTP auth.
HTTP_AUTH_USERNAME: httpauth_user
HTTP_AUTH_PASSWORD: httpauth_password
#### VIM syntax coloring
If you happen to use `vim` as your editor, you may want to copy the vim
syntax coloring files for nicer editing experience.
`cp -r pywiki/vim ~/.vim`

### Most common use case

Most common use case is to open specific article for editing or viewing
`$ wiki my_article`

Ar this point article `my_article` will be opened in your text editor.
If article doesn't exist, it will be created.

### Usage:
wiki [go] <article_name>
wiki [go] <article_name> < stdin_file.txt
wiki append <article_name> <text>
wiki log <article_name> <text>
wiki cat <article_name>
wiki mv <article_name> <new_name>
wiki upload <filepath> [<alt_filename>]
wiki --help
### Interactive mode

This goes to interactive mode:

$ wiki
Wiki command: go my_commands
Opening "my_commands" # at this point your default editor is opened with the content of "my_commands"
Saving "my_commands"
#### Searching for a note
$ wiki
Wiki command: /IP # this is shortcut for "search IP"
Searching for "IP"
1: Sysadmin tools
nmap -sT -PN -n -sV -p- # scan the shit out of this IP == ip configuration ==
2: Kzk notes
select ip , count( ip ) as ile group by ip
3: Network
IP :
4: Work notes
Subnet mask Example IP

Select 1, 2, 3, 4 to open the article

Wiki command: 3
Opening "Network" # opens content of "Network" in your default editor

#### Uploading a file

By default mediawiki requires you to log-in before you can upload a file so fill in your username and password in the
config file first.

`$ wiki upload ~/path/to/file.txt`

#### Quick edits

This is the a quick way to append short text to the end of your article:

`$ wiki append my_article "some text here"`

It's great for integrating with other programs. You can run this for example in cron.

There's alternative version if you want to append text from a text file:

`$ wiki my_article < ~/path/to/some_file.txt`

There's also a logging function:

`$ wiki log my_article "I did a thing!"`

This results in appending something like this to the end of the article:

2016-08-21 15:54 I did a thing!

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pywiki, version 0.3.4
Filename, size File type Python version Upload date Hashes
Filename, size pywiki-0.3.4.tar.gz (11.6 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page