This is possible if you create a wrapper/decorator object that makes chaining possible. This is how jQuery works for example. But it is useless in this case. 
I made a possible implementation, though.
But getItem will break the chain (so it should always be used at the end).
storage().setItem('names', 'Bill').getItem('names'); // or
storage().setItem('names').addItem('Bill').getItem('names'); // or
storage().key('names').value('Bill').set().get('names');
Implementation
(function( window, undefined ) {
var storage = function( key, value ) {
  return new storage.init( key, value );
};
storage.init = function( key, value ) {
  this._key   = key;
  this._value = value;
};
storage.init.prototype = {
  key: function( key ) {
    this._key = key;
    return this;
  },
  value: function( value ) {
    this._value = value;
    return this;
  },
  get: function( key ) {
    key = isset(key) || this._key;
    return localStorage.getItem( key );
  },
  set: function( key, value ) {
    this._key   = key   = isset(key)   || this._key;
    this._value = value = isset(value) || this._value;
    if ( key && value ) {
      localStorage.setItem( key, value );
    }
    return this;
  },
  addItem: function( value ) {
    this._value = isset(value) || this._value;
    if ( this._key && value !== undefined ) {
      localStorage.setItem( this._key, value );
    }
    return this;
  },
  // aliases...
  getItem: function( key ) {
    return this.get( key );
  },
  setItem: function( key, value  ) {
    return this.set( key, value );
  }
};
function isset( value ) {
  return value !== undefined ? value : false;
}
window.storage = storage;
})( window );