Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
NCDC(1)				  ncdc manual			       NCDC(1)

       ncdc - Ncurses Direct Connect Client

       ncdc [options]

       Ncdc is a modern	and lightweight	direct connect client with a friendly
       ncurses interface.

       This is a basic introduction for	those who are new to ncdc. See the
       chapters	below for a more detailed description of the available

       What you	see when starting up ncdc is an	input line where you can input
       commands	and a log window where the results are displayed, much like a
       regular terminal. Commands within ncdc start with a slash (e.g.
       "/help")	and have tab completion	to help	you.

       The first thing you will	want to	do after starting ncdc for the first
       time is to setup	some basic information and settings:

	 /set nick MyNick
	 /set description ncdc is awesome!
	 /set connection 10
	 /share	"My Awesome Files" /path/to/files

       And if you have a direct	connection to the internet or if your router
       allows port forwarding, you may also want to enable active mode:

	 /set active_port 34194
	 /set active true

       See the help text for each of the commands and settings for more
       information.  Of	course,	all of the above settings are saved to the
       database	and will be used again on the next run.

       To connect to a hub, use	/open:

	 /open ncdc adc://

       Here ncdc is the	personal name you give to the hub, and the second
       argument	the URL. This URL will be saved	in the database, so the	next
       time you	want to	connect	to this	hub, you can simply do "/open ncdc".
       See the help text for "/open" and "/connect" for	more information. If
       you want	to automatically connect to a hub when ncdc starts up, use the
       "autoconnect" setting.

       Ncdc uses a tabbed interface: every hub opens in	a new tab, and there
       are several other kinds of tabs available as well. The type of tab is
       indicated in the	tab list on the	bottom of the screen with a character
       prefix. Hubs, for example, are prefixed with a "#". If a	tab needs your
       attention, a colored exclamation	mark is	displayed before the tab name,
       different colors	are used for different types of	activity.

       Everything else should be fairly	self-explanatory: To search for	files,
       use the "/search" command. To browse through the	user list of a hub,
       use "/userlist" or hit Alt+u. To	browse someone's file list, use
       "/browse" or hit	the 'b'	key in the user	list. And to monitor your
       upload and download connections,	use "/connections" or hit Alt+n.

       -c, --session-dir= dir
	   Use a different session directory. Defaults to the contents of the
	   environment variable	`$NCDC_DIR' or if this is unset	to

       -h, --help
	   Display summary of options.

       -n, --no-autoconnect
	   Don't automatically connect to hubs with the	"autoconnect" option

	   Disable bracketed pasting.

       -v, --version
	   Display ncdc	version.

       As with most file sharing clients, ncdc supports	two modes of being
       connected: active and passive. In passive mode (the default), you can
       connect to the outside world but	nobody can connect (directly) to you.
       When passive, you will only be able to transfer files with people who
       are in active mode. In active mode, however, you	will have some port
       open to the rest	of the network to which	other clients can connect.
       When active, you	will be	able to	transfer files with everyone and you
       may get more and	faster search results. Configuring active mode is
       therefore recommended.

       In many setups, all you need to do to switch to active mode is to set a
       TCP/UDP port and	enable the "active" setting:

	 /set active_port 34194
	 /set active true

       When you	connect	to a hub, the status bar will tell you whether you are
       active or passive on that particular hub, and what IP address is	being
       used to allow others to connect to you. For most	hubs, your IP address
       will be detected	automatically, but in the event	that this fails, you
       can also	set it yourself:

	 /set active_ip

       If you are behind a NAT or firewall, you	have to	ensure that the	port
       you configured is somehow allowed and/or	forwarded. The "active_port"
       setting is used for incoming TCP	connections and	UDP messages. You can
       configure a different UDP port with the "active_udp_port" setting.
       Contrary	to many	toher Direct Connect clients, ncdc only	uses a single
       port for	incoming TCP and TLS connections; There	is no separate port
       for TLS.

       The "/listen" command can tell you which	ports it expects to be
       forwarded, and for which	hubs these ports will be used. It only lists
       hubs on which you are currently active, so the output will change when
       you open	or close a hub connection.

       If you have multiple network interfaces,	you can	force ncdc to use only
       a single	interface by setting the "local_address" setting to the
       address of that interface. This affects both outgoing connections (they
       will be forced to go through the	configured interface) and incoming
       connections (the	ports will be bound to the configured interface).

       All of the previously mentioned settings	can be set globally (with
       "/set") and on a	per-hub	basis (with "/hset"). This allows you to be
       active on an internet hub and a LAN-only	hub at the same	time. It also
       allows you to be	active in one hub while	passive	in another, or to use
       different ports for each	hub.

       The following is	the list of commands that can be used within ncdc. The
       /help command can also be used get a list of available commands and to
       access this documentation.

	   Use this command to accept the TLS certificate of a hub. This
	   command is used only	in the case the	keyprint of the	TLS
	   certificate of a hub	does not match the keyprint stored in the

       /browse [[-f] <user>]
	   Without arguments, this opens a new tab where you can browse	your
	   own file list. Note that changes to your list are not immediately
	   visible in the browser. You need to re-open the tab to get the
	   latest version of your list.

	   With	arguments, the file list of the	specified user will be
	   downloaded (if it has not been downloaded already) and the browse
	   tab will open once it's complete. The `-f' flag can be used to
	   force the file list to be (re-)downloaded.

	   Clears the log displayed on the screen. Does	not affect the log
	   files in any	way. Ctrl+l is a shortcut for this command.

	   Close the current tab. When closing a hub tab, you will be
	   disconnected	from the hub and all related userlist and PM tabs will
	   also	be closed. Alt+c is a shortcut for this	command.

       /connect	[<address>]
	   Initiate a connection with a	hub. If	no address is specified, will
	   connect to the hub you last used on the current tab.	The address
	   should be in	the form of `protocol://host:port/' or `host:port'.
	   The `:port' part is in both cases optional and defaults to :411.
	   The following protocols are recognized: dchub, nmdc,	nmdcs, adc,
	   adcs. When connecting to an nmdcs or	adcs hub and the SHA256
	   keyprint is known, you can attach this to the url as

	   Note	that this command can only be used on hub tabs.	If you want to
	   open	a new connection to a hub, you need to use /open first.	For

	     /open testhub
	     /connect dchub://

	   See the /open command for more information.

	   Open	the connections	tab.

       /delhub <name>
	   Remove a hub	from the configuration

	   Disconnect from a hub.

       /gc Cleans up unused data and reorganizes existing data to allow	more
	   efficient storage and usage.	Currently, this	commands removes
	   unused hash data, does a VACUUM on db.sqlite3, removes unused files
	   in inc/ and old files in fl/.

	   This	command	may take some time to complete,	and will fully block
	   ncdc	while it is running. It	is recommended to run this command
	   every once in a while. Every	month is a good	interval. Note that
	   when	ncdc says that it has completed	this command, it's lying to
	   you.	Ncdc will still	run a few large	queries	on the background,
	   which may take up to	a minute to complete.

       /grant [-list|<user>]
	   Grant someone a slot. This allows the user to download from you
	   even	if you have no free slots.  The	slot will remain granted until
	   the /ungrant	command	is used, even if ncdc has been restarted in
	   the mean time.

	   To get a list of users whom you have	granted	a slot,	use `/grant'
	   without arguments or	with `-list'. Be warned	that using `/grant'
	   without arguments on	a PM tab will grant the	slot to	the user you
	   are talking with. Make sure to use `-list' in that case.

	   Note	that a granted slot is specific	to a single hub. If the	same
	   user	is also	on other hubs, he/she will not be granted a slot on
	   those hubs.

       /help [<command>|set <key>|keys [<section>]]
	   To get a list of available commands,	use /help without arguments.
	   To get information on a particular command, use /help <command>.
	   To get information on a configuration setting, use /help set
	   <setting>.  To get help on key bindings, use	/help keys.

       /hset [<key> [<value>]]
	   Get or set per-hub configuration variables. Works equivalent	to the
	   `/set' command, but can only	be used	on hub tabs. Use `/hunset' to
	   reset a variable back to its	global value.

       /hunset [<key>]
	   This	command	can be used to reset a per-hub configuration variable
	   back	to its global value.

       /kick <user>
	   Kick	a user from the	hub. This command only works on	NMDC hubs, and
	   you need to be an OP	to be able to use it.

	   List	currently opened ports.

       /me <message>
	   This	allows you to talk in third person. Most clients will display
	   your	message	as something like:

	     **	Nick is	doing something

	   Note	that this command only works correctly on ADC hubs. The	NMDC
	   protocol does not have this feature,	and your message will be sent
	   as-is, including the	/me.

       /msg <user> [<message>]
	   Send	a private message to a user on the currently opened hub. If no
	   message is given, the tab will be opened but	no message will	be

       /nick [<nick>]
	   Alias for `/hset nick' on hub tabs, and `/set nick' otherwise.

       /open [-n] [<name>] [<address>]
	   Without arguments, list all hubs known by the current
	   configuration. Otherwise, this opens	a new tab to use for a hub.
	   The name is a (short) personal  name	you use	to identify the	hub,
	   and will be used for	storing	hub-specific  configuration.

	   If you have specified an address or have previously connected to a
	   hub from a tab with the same	name, /open will automatically connect
	   to the hub. Use the `-n' flag to disable this behaviour.

	   See /connect	for more information on	connecting to a	hub.

       /password <password>
	   This	command	can be used to send a password to the hub without
	   saving it to	the database. If you wish to login automatically
	   without having to type /password every time,	use '/hset password
	   <password>'.	Be warned, however, that your password will be saved
	   unencrypted in that case.

       /pm <user> [<message>]
	   Alias for /msg

	   Open	the download queue.

	   Quit	ncdc.

	   Reconnect to	the hub. When your nick	or the hub encoding have been
	   changed, the	new settings will be used after	the reconnect.

	   This	command	can also be used on the	main tab, in which case	all
	   connected hubs will be reconnected.

       /refresh	[<path>]
	   Initiates share refresh. If no argument is given, the complete list
	   will	be refreshed. Otherwise	only the specified directory will be
	   refreshed. The path argument	can be either an absolute filesystem
	   path	or a virtual path within your share.

       /say <message>
	   Sends a chat	message	to the current hub or user. You	normally don't
	   have	to use the /say	command	explicitly, any	command	not staring
	   with	'/' will automatically imply `/say <command>'. For example,
	   typing `hello.' in the command line is equivalent to	`/say hello.'.
	   Using the /say command explicitly may be useful to send message
	   starting with '/' to	the chat, for example `/say /help is what you
	   are looking for'.

       /search [options] <query>
	   Performs a file search, opening a new tab with the results.

	   Available options:

	     -hub      Search the current hub only. (default)
	     -all      Search all connected hubs, except those with `chat_only'	set.
	     -le  <s>  Size of the file	must be	less than <s>.
	     -ge  <s>  Size of the file	must be	larger than <s>.
	     -t	  <t>  File must be of type <t>. (see below)
	     -tth <h>  TTH root	of this	file must match	<h>.

	   File	sizes (<s> above) accept the following suffixes: G (GiB), M
	   (MiB) and K (KiB).

	   The following file types can	be used	with the -t option:

	     1	any	 Any file or directory.	(default)
	     2	audio	 Audio files.
	     3	archive	 (Compressed) archives.
	     4	doc	 Text documents.
	     5	exe	 Windows executables.
	     6	img	 Image files.
	     7	video	 Video files.
	     8	dir	 Directories.

	   Note	that file type matching	is done	using file extensions, and is
	   not very reliable.

       /set [<key> [<value>]]
	   Get or set global configuration variables. Use without arguments to
	   get a list of all global settings and their current value. Glob-
	   style pattern matching on the settings is also possible. Use, for
	   example, `/set color*' to list all color-related settings.

	   See the `/unset' command to change a	setting	back to	its default,
	   and the `/hset' command to manage configuration on a	per-hub	basis.
	   Changes to the settings are automatically saved to the database,
	   and will not	be lost	after restarting ncdc.

	   To get information on a particular setting, use `/help set <key>'.

       /share [<name> <path>]
	   Use /share without arguments	to get a list of shared	directories.
	   When	called with a name and a path, the path	will be	added to your
	   share. Note that shell escaping may be used in the name. For
	   example, to add a directory with the	name `Fun Stuff', you could do
	   the following:

	     /share "Fun Stuff"	/path/to/fun/stuff


	     /share Fun\ Stuff /path/to/fun/stuff

	   The full path to the	directory will not be visible to others, only
	   the name you	give it	will be	public.	An initial `/refresh' is done
	   automatically on the	added directory.

       /ungrant	[<user>]
	   Revoke a granted slot.

       /unset [<key>]
	   This	command	can be used to reset a global configuration variable
	   back	to its default value.

       /unshare	[<name>]
	   To remove a single directory	from your share, use `/unshare
	   <name>', to remove all directories from your	share, use `/unshare

	   Note	that the hash data associated with the removed files will
	   remain in the database. This	allows you to re-add the files to your
	   share without needing to re-hash them. The downside is that the
	   database file may grow fairly large with unneeded information. See
	   the `/gc' command to	clean that up.

	   Opens the user list of the currently	selected hub. Can also be
	   accessed using Alt+u.

	   Display version information.

       /whois <user>
	   This	will open the user list	and select the given user.

       The following is	a list of configuration	settings. These	settings can
       be changed and queried using the	"/set" command for global settings and
       "/hset" for hub-local settings. All configuration data is stored	in the
       db.sqlite3 file in the session directory.

       active <boolean>
	   Enables or disables active mode. You	may have to configure your
	   router and/or firewall for this to work, see	the `active_ip'	and
	   `active_port' settings for more information.

       active_ip <string>
	   Your	public IP address for use in active mode. If this is not set
	   or set to '' for IPv4	or '::'	for IPv6, then ncdc will try
	   to automatically get	your IP	address	from the hub. If you do	set
	   this	manually, it is	important that other clients can reach you
	   using this IP address. If you connect to a hub on the internet,
	   this	should be your internet	(WAN) IP. Likewise, if you connect to
	   a hub on your LAN, this should be your LAN IP.

	   Both	an IPv4	and an IPv6 address are	set by providing two IP
	   addresses separated with a comma. When unset, ',::' is
	   assumed. Only the IP	version	used to	connect	to the hub is used.
	   That	is, if you connect to an IPv6 hub, then	the configured IPv6
	   address is used and the IPv4	address	is ignored.

	   When	set to the special value `local', ncdc will automatically get
	   your	IP address from	the local network interface that is used to
	   connect to the hub. This option should only be used if there	is no
	   NAT between you and the hub,	because	this will give the wrong IP if
	   you are behind a NAT.

       active_port <integer>
	   The listen port for incoming	connections in active mode. Set	to `0'
	   to automatically assign a random port. This setting is by default
	   also	used for the UDP port, see the `active_tls_port' settings to
	   change that.	If you are behind a router or firewall,	make sure that
	   you have configured it to forward and allow these ports.

       active_udp_port <integer>
	   The listen port for incoming	UDP connections	in active mode.
	   Defaults to the `active_port' setting, or to	a random number	if
	   `active_port' is not	set.

       adc_blom	<boolean>
	   Whether to support the BLOM extension on ADC	hubs. This may
	   decrease the	bandwidth usage	on the hub connection, in exchange for
	   a bit of computational overhead. Some hubs require this setting to
	   be enabled. This setting requires a reconnect with the hub to be

       autoconnect <boolean>
	   Set to true to automatically	connect	to the current hub when	ncdc
	   starts up.

       autorefresh <interval>
	   The time between automatic file refreshes. Recognized suffices are
	   's' for seconds, 'm'	for minutes, 'h' for hours and 'd' for days.
	   Set to 0 to disable automatically refreshing	the file list. This
	   setting also	determines whether ncdc	will perform a refresh on
	   startup. See	the `/refresh' command to manually refresh your	file

       backlog <integer>
	   When	opening	a hub or PM tab, ncdc can load a certain amount	of
	   lines from the log file into	the log	window.	Setting	this to	a
	   positive value enables this feature and configures the number of
	   lines to load. Note that, while this	setting	can be set on a	per-
	   hub basis, PM windows will use the global value (global.backlog).

       chat_only <boolean>
	   Set to true to indicate that	this hub is only used for chatting.
	   That	is, you	won't or can't download	from it. This setting affects
	   the /search command when it is given	the -all option.

       color_* <color>
	   The settings	starting with the `color_' prefix allow	you to change
	   the interface colors. The following is a list of available color

	     list_default  - default item in a list
	     list_header   - header of a list
	     list_select   - selected item in a	list
	     log_default   - default log color
	     log_time	   - the time prefix in	log messages
	     log_nick	   - default nick color
	     log_highlight - nick color	of a highlighted line
	     log_ownnick   - color of your own nick
	     log_join	   - color of join messages
	     log_quit	   - color of quit messages
	     separator	   - the list separator/footer bar
	     tab_active	   - the active	tab in the tab list
	     tabprio_low   - low priority tab notification color
	     tabprio_med   - medium priority tab notification color
	     tabprio_high  - high priority tab notification color
	     title	   - the title bar

	   The actual color value can be set with a comma-separated list of
	   color names and/or attributes. The first color in the list is the
	   foreground color, the second	color is used for the background. When
	   the fore- or	background color is not	specified, the default colors
	   of your terminal will be used.  The following color names can be
	   used: black,	blue, cyan, default, green, magenta, red, white	and
	   yellow.  The	following attributes can be used: bold,	blink, reverse
	   and underline.  The actual color values displayed by	your terminal
	   may vary. Adding the	`bold' attribute usually makes the foreground
	   color appear	brighter as well.

       connection <string>
	   Set your upload speed. This is just an indication for other users
	   in the hub so that they know	what speed they	can expect when
	   downloading from you. The actual format you can use here may	vary,
	   but it is recommended to set	it to either a plain number for	Mbit/s
	   (e.g. `50' for 50 mbit) or a	number with a `KiB/s' indicator	(e.g.
	   `2300 KiB/s'). On ADC hubs you must use one of the previously
	   mentioned formats, otherwise	no upload speed	will be	broadcasted.
	   This	setting	is broadcasted as-is on	NMDC hubs, to allow for	using
	   old-style connection	values (e.g. `DSL' or `Cable') on hubs that
	   require this.

	   This	setting	is ignored if `upload_rate' has	been set. If it	is,
	   that	value is broadcasted instead.

       description <string>
	   A short public description that will	be displayed in	the user list
	   of a	hub.

       disconnect_offline <boolean>
	   Automatically disconnect any	upload or download transfers when a
	   user	leaves the hub,	or when	you leave the hub. Setting this	to
	   `true' ensures that you are only connected with people who are
	   online on the same hubs as you are.

       download_dir <path>
	   The directory where finished	downloads are moved to.	Finished
	   downloads are by default stored in <session directory>/dl/. It is
	   possible to set this	to a location that is on a different
	   filesystem than the incoming	directory, but doing so	is not
	   recommended:	ncdc will block	when moving the	completed files	to
	   their final destination.

       download_exclude	<regex>
	   When	recursively adding a directory to the download queue - by
	   pressing `d'	on a directory in the file list	browser	- any item in
	   the selected	directory with a name that matches this	regular
	   expression will not be added	to the download	queue.

	   This	regex is not checked when adding individual files from either
	   the file list browser or the	search results.

       download_rate <speed>
	   Maximum combined transfer rate of all downloads. The	total download
	   speed will be limited to this value.	The suffixes `G', 'M', and 'K'
	   can be used for GiB/s, MiB/s	and KiB/s, respectively. Note that,
	   similar to upload_rate, TCP overhead	are not	counted	towards	this
	   limit, so the actual	bandwidth usage	might be a little higher.

       download_segment	<size>
	   Minimum segment size	to use when requesting file data from another
	   user. Set to	0 to disable segmented downloading.

       download_shared <boolean>
	   Whether to download files which are already present in your share.
	   When	this is	set to `false',	adding already shared files results in
	   a UI	message	instead	of adding the file to the download queue.

       download_slots <integer>
	   Maximum number of simultaneous downloads.

       email <string>
	   Your	email address. This will be displayed in the user list of the
	   hub,	so only	set this if you	want it	to be public.

       encoding	<string>
	   The character set/encoding to use for hub and PM messages. This
	   setting is only used	on NMDC	hubs, ADC always uses UTF-8. Some
	   common values are:

	     CP1250	 (Central Europe)
	     CP1251	 (Cyrillic)
	     CP1252	 (Western Europe)
	     ISO-8859-7	 (Greek)
	     KOI8-R	 (Cyrillic)
	     UTF-8	 (International)

       filelist_maxage <interval>
	   The maximum age of a	downloaded file	list. If a file	list was
	   downloaded longer ago than the configured interval, it will be
	   removed from	the cache (the fl/ directory) and subsequent requests
	   to open the file list will result in	the list being downloaded from
	   the user again. Recognized suffices are 's' for seconds, 'm'	for
	   minutes, 'h'	for hours and 'd' for days. Set	to 0 to	disable	the
	   cache altogether.

       flush_file_cache	<none|upload|download|hash>[,...]
	   Tell	the OS to flush	the file (disk)	cache for file contents	read
	   while hashing and/or	uploading or written to	while downloading. On
	   one hand, this will avoid trashing your disk	cache with large files
	   and thus improve the	overall	responsiveness of your system. On the
	   other hand, ncdc may	purge any shared files from the	cache, even if
	   they	are still used by other	applications. In general, it is	a good
	   idea	to enable this if you also use your system for other things
	   besides ncdc, you share large files (>100MB)	and people are not
	   constantly downloading the same file	from you.

       geoip_cc	<path>|disabled
	   Path	to the GeoIP2 Country database file (GeoLite2-Country.mmdb),
	   or 'disabled' to disable GeoIP lookups. The database	can be
	   downloaded  from

       hash_rate <speed>
	   Maximum file	hashing	speed. See the `download_rate' setting for
	   allowed formats for this setting.

       hubname <string>
	   The name of the currently opened hub	tab. This is a user-assigned
	   name, and is	only used within ncdc itself. This is the same name as
	   given to the	`/open'	command.

       incoming_dir <path>
	   The directory where incomplete downloads are	stored.	This setting
	   can only be changed when the	download queue is empty. Also see the
	   download_dir	setting.

       local_address <string>
	   Specifies the address of the	local network interface	to use for
	   connecting to the outside and for accepting incoming	connections in
	   active mode.	Both an	IPv4 and an IPv6 address are set by providing
	   two IP addresses separated with a comma. When unset,	',::'
	   is assumed.

	   If no IPv4 address is specified, '' is added automatically.
	   Similarly, if no IPv6 address is specified, '::' is added
	   automatically. The address that is actually used depends on the IP
	   version actually used. That is, if you're on	an IPv6	hub, then ncdc
	   will	listen on the specified	IPv6 address. Note that, even if the
	   hub you're on is on IPv6, ncdc may still try	to connect to another
	   client over IPv4, at	which point the	socket will be bound to	the
	   configured IPv4 address.

       log_debug <boolean>
	   Log debug messages to stderr.log in the session directory. It is
	   highly recommended to enable	this setting if	you wish to debug or
	   hack	ncdc. Be warned, however, that this may	generate a lot of data
	   if you're connected to a large hub.

       log_downloads <boolean>
	   Log downloaded files	to transfers.log.

       log_hubchat <boolean>
	   Log the main	hub chat. Note that changing this requires any
	   affected hub	tabs to	be closed and reopened before the change is

       log_uploads <boolean>
	   Log file uploads to transfers.log.

       max_ul_per_user <integer>
	   The maximum number of simultaneous upload connections to one	user.

       minislots <integer>
	   Set the number of available minislots. A `minislot' is a special
	   slot	that is	used when all regular upload slots are in use and
	   someone is requesting your filelist or a small file.	In this	case,
	   the other client automatically applies for a	minislot, and can
	   still download from you as long as not all minislots	are in use.
	   What	constitutes a `small' file can be changed with the
	   `minislot_size' setting. Also see the `slots' configuration setting
	   and the `/grant' command.

       minislot_size <integer>
	   The maximum size of a file that may be downloaded using a
	   `minislot', in KiB. See the `minislots' setting for more

       nick <string>
	   Your	nick. Nick changes are only visible on newly connected hubs,
	   use the  `/reconnect' command to use	your new nick immediately.
	   Note	that it	is highly discouraged to change	your nick on NMDC
	   hubs. This is because clients downloading from you have no way of
	   knowing that	you changed your nick, and therefore can't immediately
	   continue to download	from you.

       notify_bell <disable|low|medium|high>
	   When	enabled, ncdc will send	a bell to your terminal	when a tab
	   indicates a notification. The notification types are:

	     high   - Messages directed	to you (PM or highlight	in hub chat),
	     medium - Regular hub chat,
	     low    - User joins/quits,	new search results, etc.

	   How a "bell"	(or "beep" or "alert", whatever	you prefer to call it)
	   manifests itself depends on your terminal. In some setups, this
	   generates an	audible	system bell. In	other setups it	can makes your
	   terminal window flash or do other annoying things to	get your
	   attention.  And in some setups it is	ignored	completely.

       password	<string>
	   Sets	your password for the current hub and enables auto-login on
	   connect. If you just	want to	login to a hub without saving your
	   password, use the `/password' command instead. Passwords are	saved
	   unencrypted in the config file.

       reconnect_timeout <interval>
	   The time to wait before automatically reconnecting to a hub.	Set to
	   0 to	disable	automatic reconnect.

       sendfile	<boolean>
	   Whether or not to use the sendfile()	system call to upload files,
	   if supported. Using sendfile() allows less resource usage while
	   uploading, but may not work well on all systems.

       share_emptydirs <boolean>
	   Share empty directories. When disabled (the default), empty
	   directories in your share will not be visible to others. This also
	   affects empty directories containing	only empty directories,	etc. A
	   file	list refresh is	required for this setting to be	effective.

       share_exclude <regex>
	   Any file or directory with a	name that matches this regular
	   expression will not be shared. A file list refresh is required for
	   this	setting	to be effective.

       share_hidden <boolean>
	   Whether to share hidden files and directories. A `hidden' file or
	   directory is	one of which the file name starts with a dot. (e.g.
	   `.bashrc'). A file list refresh is required for this	setting	to be

       share_symlinks <boolean>
	   Whether to follow symlinks in shared	directories. When disabled
	   (default), ncdc will	never share any	files outside of the directory
	   you specified. When enabled,	any symlinks in	your shared
	   directories will be followed, even when they	point to a directory
	   outside your	share.

       show_free_slots <boolean>
	   When	set to true, [n	sl] will be prepended to your description,
	   where n is the number of currently available	upload slots.

       show_joinquit <boolean>
	   Whether to display join/quit	messages in the	hub chat.

       slots <integer>
	   The number of upload	slots. This determines for the most part how
	   many	people can download from you simultaneously. It	is possible
	   that	this limit is exceeded in certain circumstances, see the
	   `minislots' setting and the `/grant'	command.

       sudp_policy <disabled|allow|prefer>
	   Set the policy for sending or receiving encrypted UDP search
	   results. When set to	`disabled', all	UDP search results will	be
	   sent	and received in	plain text. Set	this to	`allow'	to let ncdc
	   reply with encrypted	search results if the other client requested
	   it. `prefer'	will also cause	ncdc itself to request encryption.

	   Note	that, regardless of this setting, encrypted UDP	search results
	   are only used on ADCS hubs. They will never be sent on NMDC or non-
	   TLS ADC hubs. Also note that, even if you set this to `prefer',
	   encryption is still only used when the client on the	other side of
	   the connection also supports	it.

       tls_policy <disabled|allow|prefer>
	   Set the policy for secure client-to-client connections. Setting
	   this	to `disabled' disables TLS support for client connections, but
	   still allows	you to connect to TLS-enabled hubs. `allow' will allow
	   the use of TLS if the other client requests this, but ncdc itself
	   will	not request TLS	when connecting	to others. Setting this	to
	   `prefer' tells ncdc to also request TLS when	connecting to others.

	   The use of TLS for client connections usually results in less
	   optimal performance when uploading and downloading, but is quite
	   effective at	avoiding protocol-specific traffic shaping that	some
	   ISPs	may do.	Also note that,	even if	you set	this to	`prefer', TLS
	   will	only be	used if	the connecting party also supports it.

       tls_priority <string>
	   Set the GnuTLS priority string used for all TLS-enabled
	   connections.	See the	"Priority strings" section in the GnuTLS
	   manual for details on what this does	and how	it works. Currently it
	   is not possible to set a different priority string for different
	   types of connections	(e.g. hub or incoming/outgoing client

       ui_time_format <string>
	   The format of the time displayed in the lower-left of the screen.
	   Set `-' to not display a time at all. The string is passed to the
	   Glib	g_date_time_format() function, which accepts roughly the same
	   formats as strftime(). Check	out the	strftime(3) man	page or	the
	   Glib	documentation for more information. Note that this setting
	   does	not influence the date/time format used	in other places, such
	   as the chat window or log files.

       upload_rate <speed>
	   Maximum combined transfer rate of all uploads. See the
	   `download_rate' setting for more information	on rate	limiting. Note
	   that	this setting also overrides any	`connection' setting.

       On any tab without the text input line, you can press `?' to get	the
       key bindings for	that tab. The list of key bindings is available
       through the "/help keys"	command, and is	reproduced below.

       Global key bindings
	     Alt+j	  Open previous	tab.
	     Alt+k	  Open next tab.
	     Alt+h	  Move current tab left.
	     Alt+l	  Move current tab right.
	     Alt+a	  Move tab with	recent activity.
	     Alt+<num>	  Open tab with	number <num>.
	     Alt+c	  Close	current	tab.
	     Alt+n	  Open the connections tab.
	     Alt+q	  Open the download queue tab.
	     Alt+o	  Open own file	list.
	     Alt+r	  Refresh file list.

	     Keys for tabs with	a log window:
	     Ctrl+l	  Clear	current	log window.
	     PgUp	  Scroll the log backward.
	     PgDown	  Scroll the log forward.

	     Keys for tabs with	a text input line:
	     Left/Right	  Move cursor one character left or right.
	     End/Home	  Move cursor to the end / start of the	line.
	     Up/Down	  Scroll through the command history.
	     Tab	  Auto-complete	current	command, nick or argument.
	     Alt+b	  Move cursor one word backward.
	     Alt+f	  Move cursor one word forward.
	     Backspace	  Delete character before cursor.
	     Delete	  Delete character under cursor.
	     Ctrl+w	  Delete to previous space.
	     Alt+d	  Delete to next space.
	     Ctrl+k	  Delete everything after cursor.
	     Ctrl+u	  Delete entire	line.

       File browser
	     Up/Down	  Select one item up/down.
	     k/j	  Select one item up/down.
	     PgUp/PgDown  Select one page of items up/down.
	     End/Home	  Select last/first item in the	list.
	     /		  Start	incremental regex search (press	Return to stop editing).
	     ,/.	  Search next /	previous.
	     Right/l	  Open selected	directory.
	     Left/h	  Open parent directory.
	     t		  Toggle sorting directories before files.
	     s		  Order	by file	size.
	     n		  Order	by file	name.
	     d		  Add selected file/directory to the download queue.
	     m		  Match	selected item with the download	queue.
	     M		  Match	entire file list with the download queue.
	     a		  Search for alternative download sources.

       Connection list
	     Up/Down	  Select one item up/down.
	     k/j	  Select one item up/down.
	     PgUp/PgDown  Select one page of items up/down.
	     End/Home	  Select last/first item in the	list.
	     d		  Disconnect selected connection.
	     i/Return	  Toggle information box.
	     f		  Find user in user list.
	     m		  Send a PM to the selected user.
	     q		  Find file in download	queue.
	     b/B	  Browse the selected user's list, B to	force a	redownload.

       Download	queue
	     Up/Down	  Select one item up/down.
	     k/j	  Select one item up/down.
	     PgUp/PgDown  Select one page of items up/down.
	     End/Home	  Select last/first item in the	list.
	     K/J	  Select one user up/down.
	     f		  Find user in user list.
	     c		  Find connection in the connection list.
	     a		  Search for alternative download sources.
	     d		  Remove selected file from the	queue.
	     +/-	  Increase/decrease priority.
	     i/Return	  Toggle user list.
	     r		  Remove selected user for this	file.
	     R		  Remove selected user from all	files in the download queue.
	     x		  Clear	error state for	the selected user for this file.
	     X		  Clear	error state for	the selected user for all files.

	     Note: when	an item	in the queue has `ERR' indicated in the
	     priority column, you have two choices: You	can remove the
	     item from the queue using `d', or attempt to continue the
	     download by increasing its	priority using `+'.

       Search results tab
	     Up/Down	  Select one item up/down.
	     k/j	  Select one item up/down.
	     PgUp/PgDown  Select one page of items up/down.
	     End/Home	  Select last/first item in the	list.
	     f		  Find user in user list.
	     b/B	  Browse the selected user's list, B to	force a	redownload.
	     d		  Add selected file to the download queue.
	     h		  Toggle hub column visibility.
	     u		  Order	by username.
	     s		  Order	by file	size.
	     l		  Order	by free	slots.
	     n		  Order	by file	name.
	     m		  Match	selected item with the download	queue.
	     M		  Match	all search results with	the download queue.
	     q		  Match	selected users'	list with the download queue.
	     Q		  Match	all matched users' lists with the download queue.
	     a		  Search for alternative download sources.

       User list tab
	     Up/Down	  Select one item up/down.
	     k/j	  Select one item up/down.
	     PgUp/PgDown  Select one page of items up/down.
	     End/Home	  Select last/first item in the	list.
	     /		  Start	incremental regex search (press	Return to stop editing).
	     ,/.	  Search next /	previous.
	     o		  Toggle sorting OPs before others.
	     s/S	  Order	by share size.
	     u/U	  Order	by username.
	     t/T	  Toggle visibility / order by tag column.
	     e/E	  Toggle visibility / order by email column.
	     c/C	  Toggle visibility / order by connection column.
	     p/P	  Toggle visibility / order by IP column.
	     i/Return	  Toggle information box.
	     m		  Send a PM to the selected user.
	     g		  Grant	a slot to the selected user.
	     b/B	  Browse the selected users' list, B to	force a	redownload.
	     q		  Match	selected users'	list with the download queue.

       Some listings have a flags display, and their meaning may not be
       immediately obvious.

   File	status
       You may see one-letter flags to the left	of file	names in search
       results and file	list tabs. Their meaning is as follows:

       H   The file had	been added to the file list, but has not been hashed
	   yet and thus	is not visible to others. This flag can	appear only
	   when	browsing your own list.

       S   The file is already in your share. If "download_shared" is set to
	   "false", trying to download it will result only in an informational
	   message. This flag never appears when browsing your own file	list.

       Q   The file is currently in your download queue. Trying	to download it
	   will	result only in an informational	message.

   Connection flags
       On the connection list window, there are	two flags:

       S   Connection state, can be either Connecting, Handshake, Idle,
	   Downloading,	Uploading or - for disconnected.

       t   This	means that the connection is encrypted with TLS.

   User	flags
       The user	list has some flags too:

       o   Set if the user is an operator in the hub.

       p   When	the user is passive. If	this flag is not set, the user is

       t   Set if connections with this	user will be encrypted with TLS.

       $NCDC_DIR is used to determine the session dir, it is only honoured if
       -c is not set on	the command line.

       $NCDC_DIR corresponds to	the session dir	set via	-c, environment
       variable	$NCDC_DIR or $HOME/.ncdc.

	   Directory where the client certificates are stored. Must contain a
	   private key file (client.key) and public certificate	(client.crt).
	   These will be generated automatically when ncdc starts up the first

	   The database. This stores all configuration variables, hash data of
	   shared files, download queue	information and	other state
	   information.	Manually editing this file with	the `sqlite3'
	   commandline tool is possible	but discouraged. Any changes made to
	   the database	while ncdc is running will not be read,	and may	even
	   get overwritten by ncdc.

	   Directory where completed downloads are moved to by default.	Can be
	   changed with	the "download_dir" configuration option.

	   Filelist containing a listing of all	shared files.

	   Directory where downloaded file lists from other users are stored.
	   The names of	the files are hex-encoded user IDs that	are used
	   internally by ncdc. Old file	lists are deleted automatically	after
	   a configurable interval. See	the "filelist_maxage" configuration

	   Command history.

	   Default location for	incomplete downloads. Can be changed with the
	   "incoming_dir" setting. The file names in this directory are	the
	   base32-encoded TTH root of the completed file.

	   Directory where all the log files are stored. File names starting
	   with	`#' are	hub logs and `~' are user (PM) logs. Special log files
	   are transfers.log and main.log.

	   ncdc	does not have built-in functionality to	rotate or compress log
	   files automatically.	When rotating log files	manually (e.g. via a
	   cron	job), make sure	to send	the SIGUSR1 signal afterwards to force
	   ncdc	to flush the old logs and create or open the new log files.

	   Error/debug log. This file is cleared every time ncdc starts	up.

	   Version of the data directory. This file locked while an ncdc
	   instance is running,	making sure that no two	ncdc instances work
	   with	the same session directory at the same time.

   Format of transfers.log
       Uploads and downloads are logged	in the transfers.log file. Transfers
       are separated by	a newline (0x0a). Each log line	has the	following
       fields, separated by a space:

       1.  Date/time when the transfer ended, formatted	as "[YYYY-MM-DD
	   HH:MM:SS ZONE]",

       2.  Hub name, including the "#" prefix,

       3.  Base32-encoded CID of the other user	for ADC	transfers, or a	'-'
	   for NMDC,

       4.  User	name (escaped),

       5.  IPv4	or IPv6	address,

       6.  Direction, "u" for upload or	"d" for	download,

       7.  Whether the transfer	completed successfully ("c") or	has been
	   interrupted/disconnected before all requested file data has been
	   transferred ("i"),

       8.  Base32-encoded TTH of the transferred file, or '-' for

       9.  Total transfer time,	in seconds,

       10. File	size, in bytes,

       11. File	offset,	in bytes,

       12. Transfer size, in bytes,

       13. File	path (escaped).	Absolute virtual path for uploads, destination
	   path	for downloads.

       All fields are encoded in UTF-8.	Fields that may	contain	a space	or
       newline are escaped as follows: A space is escaped as "\s", a newline
       as "\n" and a backslash as "\\".	The timestamp is not escaped.

       Many clients download files is separate (smallish) chunks. Ncdc makes
       no attempt to combine multiple chunk requests in	a single log entry, so
       you may see the same uploaded file several times	with a different file

       Copyright (C) 2011-2019 Yoran Heling <>

       ncdc is distributed under the MIT license, please read the COPYING file
       for more	information.

       Please report bugs or feature requests to the bug tracker or the
       mailing list.  Both can be found	on the ncdc homepage at
       <>. There is also an ADC hub available	at
       "adc://" for general support and discussions.

       ncdc is written by Yoran	Heling <>

       Web: <>

ncdc-1.22.1			  2019-06-03			       NCDC(1)


Want to link to this manual page? Use this URL:

home | help