Entrance is currently $20 for a private vehicle, $15 for a motorcycle, or $10 per person arriving on foot or by bicycle. Each of those is valid for three consecutive days rather than one, which makes a two-day visit considerably better value than most people assume. Under-16s enter free. A park-specific annual pass runs $35, and the America the Beautiful interagency passes are accepted.
The park does not accept cash. Card or digital payment only, at the entrance station and at the visitor centre. This is published on the park's fee page and it is the single most common way an arrival goes wrong.
The fee covers the shuttle, every National Park Service exhibit building in the lower town, John Brown's Fort, all the trails, and the battlefield sites out at Bolivar Heights and Schoolhouse Ridge. It does not cover the privately run museums and attractions in town, which charge separately, or anything you book with a river outfitter.
Arriving by train you pay the per-person rate rather than the vehicle rate, which is one of several small ways the rail option works out cheaper than it looks.
Fee schedules get revised. Check the park's own page before you travel rather than trusting any figure quoted on a site like this one, including ours.