Add custom list menu on Posts page in admin panel

You can use the views_{$this->screen->id} filter in WP_List_Table::views(), where screen ID in this case is edit-post:

function wpse_177655_views( $views ) {
    $custom = sprintf( '<a href="https://wordpress.stackexchange.com/questions/177655/%s"', esc_url( 'edit.php?post_type=post&custom=foobar' ) );
    if ( ! empty( $_GET['custom'] ) && $_GET['custom'] == 'foobar' )
        $custom .= ' class="current"';
    $custom .= '>Custom</a>';

    $views['custom'] = $custom;

    return $views;
}

add_filter( 'views_edit-post', 'wpse_177655_views' );

Obviously this is more of an example than an exact solution. You’ll also need to hook onto pre_get_posts to add the relevant meta query args.

error code: 523