Manage configs in the user home dir
Last updated 3 years ago by sdgluck .
MIT · Repository · Original npm · Tarball · package.json
$ cnpm install user-conf 
SYNC missed versions from official npm registry.


Manage configs in the user home directory

Made with ❤ at @outlandish

npm version

Easily persist and update a JSON object in a user's home directory.

Simplifies managing a single configuration (JSON) object for Node programs that need to save user options, e.g. CLI apps. Probably has other uses too but CLI apps is why I made this.


npm install --save user-conf
yarn add user-conf


// ES2015
import UserConf from 'user-conf'
// CommonJS
var userConf = require('user-conf')


userConf.init(name[, baseOptions]) : UserConfig

Initialise or get a user configuration.

The first time this is run the configuration is initialised with the baseOptions object.

  • name {String} name of the config
  • base {Object} (optional) base config object (default: {})

Returns an instance of UserConfig (available at exports.UserConfig).


All methods except destroy have a *Sync equivalent, e.g. getSync() and setSync().

UserConfig#get([key, cb]) : *

Get all options or one option by passing key.

  • key {String} (optional) key name of option, accepts dot-paths
  • cb {Function} (optional) error-first callback

UserConfig#set([key,] val[, cb])

Set an option value or the whole object (pass val as first argument)

  • key {String} (optional) key name of option, accepts dot-paths
  • value {*} value of option (must be serialisable as JSON)
  • cb {Function} (optional) error-first callback

UserConfig#update(diff[, cb])

Merge an object into the user configuration.

  • diff {Object} options object to merge (must be serialisable as JSON)
  • cb {Function} (optional) error-first callback


Clear the user configuration object of all options.

  • cb {Function} (optional) error-first callback


Delete the config from filesystem.

  • cb {Function} (optional) error-first callback


import userConf from 'user-conf'
import prompt from 'inquirer'

const conf = userConf.init('user-name-app', {name: 'Joe Bloggs'})

//=> first run: "Joe Bloggs" 
//=> subsequent runs: "Spongebob Squarepants" 

prompt([{name: 'What\'s your name?'}]).then(({name}) => {
  conf.setSync('name', name)
  console.log(conf.getSync('name')) //=> "Spongebob Squarepants"


All pull requests and issues welcome!

If you're not sure how, check out the great video tutorials on!


MIT © Sam Gluck

Current Tags

  • 2.0.0                                ...           latest (3 years ago)

7 Versions

  • 2.0.0                                ...           3 years ago
  • 1.1.1                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.3                                ...           3 years ago
  • 1.0.2                                ...           3 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (6)
Dev Dependencies (3)
Dependents (0)

Copyright 2014 - 2016 © |