diff --git a/lib/src/command/token_add.dart b/lib/src/command/token_add.dart
index fddc0cc..caf3b8b 100644
--- a/lib/src/command/token_add.dart
+++ b/lib/src/command/token_add.dart
@@ -57,17 +57,11 @@
     } on FormatException catch (e) {
       usageException('Invalid [hosted-url]: "$rawHostedUrl"\n'
           '${e.message}');
-    } on TimeoutException catch (_) {
-      // Timeout is added to readLine call to make sure automated jobs doesn't
-      // get stuck on noop state if user forget to pipe token to the 'token add'
-      // command. This behavior might be removed.
-      throw ApplicationException('Token is not provided within 15 minutes.');
     }
   }
 
   Future<void> _addTokenFromStdin(Uri hostedUrl) async {
-    final token = await stdinPrompt('Enter secret token:', echoMode: false)
-        .timeout(const Duration(minutes: 15));
+    final token = await stdinPrompt('Enter secret token:', echoMode: false);
     if (token.isEmpty) {
       usageException('Token is not provided.');
     }
diff --git a/lib/src/io.dart b/lib/src/io.dart
index 641da73..d6af9c2 100644
--- a/lib/src/io.dart
+++ b/lib/src/io.dart
@@ -8,7 +8,6 @@
 import 'dart:convert';
 import 'dart:io';
 
-import 'package:async/async.dart';
 import 'package:cli_util/cli_util.dart'
     show EnvironmentNotFoundException, applicationConfigHome;
 import 'package:http/http.dart' show ByteStream;
@@ -562,10 +561,6 @@
   return path.fromUri(url);
 })();
 
-/// A line-by-line stream of standard input.
-final StreamQueue<String> _stdinLines = StreamQueue(
-    ByteStream(stdin).toStringStream().transform(const LineSplitter()));
-
 /// Displays a message and reads a yes/no confirmation from the user.
 ///
 /// Returns a [Future] that completes to `true` if the user confirms or `false`
@@ -591,14 +586,14 @@
     final previousEchoMode = stdin.echoMode;
     try {
       stdin.echoMode = echoMode;
-      final result = await _stdinLines.next;
+      final result = stdin.readLineSync() ?? '';
       stdout.write('\n');
       return result;
     } finally {
       stdin.echoMode = previousEchoMode;
     }
   } else {
-    return await _stdinLines.next;
+    return stdin.readLineSync() ?? '';
   }
 }
 
