Inline Entity Form - start with first new node open
I read the codes in the inline_entity_form.module, and found the inline_entity_form_single is always displaying a form, so i copied its code to my module and it works:

function YOURMODULE_field_widget_form_alter(&amp;$element, &amp;$form_state, $context) {
  $field = $context['field'];
  if (isset($field['field_name']) &amp;&amp; ('FIELD_NAME' == $field['field_name'])) {
    if (empty($element['form']) &amp;&amp; empty($element['entities'][0])) {
      $element['actions'] = array();
      $instance = $context['instance'];
      $settings = inline_entity_form_settings($field, $instance);
      $controller = inline_entity_form_get_controller($instance);

      $parents = array_merge($element['#field_parents'], array($element['#field_name'], $element['#language']));
      $parent_langcode = entity_language($element['#entity_type'], $element['#entity']);

      $ief_id = $element['#ief_id'];

      $element['form'] = array (
        '#type' =&gt; 'container',
        '#op' =&gt; 'add',
        '#parents' =&gt; array_merge($parents, array ('form')),
        '#entity_type' =&gt; $settings['entity_type'],
        '#parent_language' =&gt; $parent_langcode,
        '#ief_id' =&gt; $ief_id,
      );
      $bundle = reset($settings['bundles']);

      $form_state['inline_entity_form'][$ief_id]['form settings'] = array (
        'bundle' =&gt; $bundle,
      );

      $element['form'] = inline_entity_form_entity_form($controller, $element['form'], $form_state);
    }
  }
}