Coronavirus disease 2019 (COVID-19) is an infectious disease of humans caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). Since the first case was identified in China in December 2019 the disease has spread worldwide, leading to an ongoing pandemic . In this article, we present a detailed agent-based model of COVID-19 in Luxembourg, and use it to estimate the impact, on cases and deaths, of interventions including testing, contact tracing, lockdown, curfew and vaccination . Our model is based on collation, with agents performing activities and moving between locations accordingly . The model is highly heterogeneous, featuring spatial clustering, over 2000 behavioural types and a 10 minute time resolution . The model is validated against COVID-19 clinical monitoring data collected in Luxembourg in 2020 . Our model predicts far fewer cases and deaths than the equivalent equation-based SEIR model . In particular, with $R_0 = 2.45 $, the SEIR model infects 87% of the resident population while our agent-based model results, on average, in only around 23% of the resident population infected . Our simulations suggest that testing and contract tracing reduce cases substantially, but are much less effective at reducing deaths . Lockdowns appear very effective although costly, while the impact of an 11pm-6am curfew is relatively small . When vaccinating against a future outbreak, our results suggest that herd immunity can be achieved at relatively low levels, with substantial levels of protection achieved with only 30% of the population immune . When vaccinating in midst of an outbreak, the challenge is more difficult . In this context, we investigate the impact of vaccine efficacy, capacity, hesitancy and strategy . We conclude that, short of a permanent lockdown, vaccination is by far the most effective way to suppress and ultimately control the spread of COVID-19.