Couple of things wrong here…
First, the first and last frame of you animation are not the same, they need to be the same. For any animation to loop, the first and last frame have to be the exact same pose, because once the animation loops to start again, if the poses aren’t the same, the animation appears choppy.
Blender has a copy pose, paste pose, and paste flipped pose function that is good for this sort of thing, but you have to have named bones with .l & .r suffixes for it to work.
Also, your starting and ending frames for the animation is off. The start frame is frame 0, but your first key frame is at frame 1. Your last keyframe is at frame 13, and so is your ending frame for the animation. If your animation starts on frame 1 and ends in the exact same pose at frame 13, then your start frame should be frame 1, and your end frame be frame 12. This is because frame 1 and 13 are the same, so ending at frame 12 means the loop restarts at the pose of frame 1, which is same as frame 13. repeating the same pose for 2 frames will make an animation appear choppy.