Clarke has struggled for form in a series Australia lost after a defeat by an innings and 78 runs in the fourth test at Trent Bridge on Saturday. The 34-year-old batsman has scored 117 runs in eight innings.
Clarke said he made the decision on Friday night after talking to his wife. He notified the Australian selectors on Saturday.
"I don't feel sad, I'm more disappointed," Clarke said. "I believe it's the right time. I feel blessed to have had the career I've had."
Clarke made his international debut for Australia in a one-day international in 2003, and has played test cricket since 2004 — captaining his country since 2011. He has played 114 tests, with his impressive average dipping just under 50 during the latest Ashes series.
Clarke's last test will be at The Oval starting Aug. 20 and he will be captain. He ends his career without winning an Ashes series in England after four attempts, but he did win the Ashes twice at home and led Australia to the Cricket World Cup title this year.
A polished stroke-maker in his prime and one of Australia's best batsmen in a generation, Clarke's high standards have dropped this English summer. He said before the fourth test he had no intention of stepping down, despite doubts in his own mind.
"I tried to be as positive as I could right to the end, for the team's sake," Clarke said. "Throughout this test match, things didn't go according to plan.
"Whether we won this series or lost, the decision might have been the same."
Clarke didn't say who he wanted to replace him as captain. Steve Smith is the favorite to succeed Clarke.
Sandeep Lamichhane invited to play in Australia