It's not converting "False" to False, it's just setting the default value if "force" is not provided, since `args` is a dictionary:

    import json
    from klein import run, route

    @route('/')
    def args(request):
        return json.dumps(request.args)

    run("localhost", 7890)

The results:

     $ curl http://localhost:7890/?force=false
     {"force": ["false"]}

So request.args.get('force', False) in this case would return ["false"], which evaluates to True.